javascript的字符串按引用复制和传递,按值来比较介绍与应用


Posted in Javascript onDecember 28, 2012

按值和按引用的比较
Numbers 和 Boolean 类型的值 (true 和 false) 是按值来复制、传递和比较的。当按值复制或传递时,将在计算机内存中分配一块空间并将原值复制到其中。然后,即使更改原来的值,也不会影响所复制的值(反过来也一样),因为这两个值是独立的实体。

对象、数组以及函数是按引用来复制、传递和比较的。 当按地址复制或传递时,实际是创建一个指向原始项的指针,然后就像拷贝一样来使用该指针。如果随后更改原始项,则将同时更改原始项和复制项(反过来也一样)。实际上只有一个实体;“复本”并不是一个真正的复本,而只是该数据的又一个引用。

当按引用比较时,要想比较成功,两个变量必须参照完全相同的实体。例如,两个不同的 Array 对象即使包含相同的元素也将比较为不相等。要想比较成功,其中一个变量必须为另一个的参考。要想检查两个数组是否包含了相同的元素,比较 toString() 方法的结果。

最后,字符串是按引用复制和传递的,但是是按值来比较的。请注意,假如有两个 String 对象(用 new String("something") 创建的),按引用比较它们,但是,如果其中一个或者两者都是字符串值的话,按值比较它们。

字符串是按引用复制和传递的,但是是按值来比较的。请注意,假如有两个 String 对象(用 new String("something") 创建的),按引用比较它们,但是,如果其中一个或者两者都是字符串值的话,按值比较它们。

var str1="aa"; 
var str2=new String("aa"); 
var str3=str2; 
function test(p){ 
var str4=p; 
console.log(str4===str2); 
} 
console.log(str1===str2); //false 
console.log(str3===str2); //true 
test(str1);//false 
test(str2);//true
Javascript 相关文章推荐
YUI 读码日记之 YAHOO.util.Dom - Part.1
Mar 22 Javascript
js相册效果代码(点击创建即可)
Apr 16 Javascript
鼠标选择动态改变网页背景颜色的JS代码
Dec 10 Javascript
JavaScript用select实现日期控件
Jul 17 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
Dec 01 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
May 28 Javascript
Vue.js每天必学之组件与组件间的通信
Sep 08 Javascript
谈谈Vue.js——vue-resource全攻略
Jan 16 Javascript
angularJS模态框$modal实例代码
May 27 Javascript
Javascript中的getter和setter初识
Aug 17 Javascript
VSCode中如何利用d.ts文件进行js智能提示
Apr 13 Javascript
js实现鼠标拖拽缩放div实例代码
Mar 25 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
Dec 28 #Javascript
Javascript 加载和执行-性能提高篇
Dec 28 #Javascript
javascript延时加载之defer测试
Dec 28 #Javascript
JavaScript(js)设置默认输入焦点(focus)
Dec 28 #Javascript
Javascript图像处理—平滑处理实现原理
Dec 28 #Javascript
js获取网页高度(详细整理)
Dec 28 #Javascript
前台js改变Session的值(用ajax实现)
Dec 28 #Javascript
You might like
PHP将XML转数组过程详解
2013/11/13 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
2014/10/17 PHP
php命令行写shell实例详解
2018/07/19 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
jquery修改属性值实例代码(设置属性值)
2014/01/06 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
vue中使用input[type="file"]实现文件上传功能
2018/09/10 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
node.js基础知识汇总
2020/08/25 Javascript
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
工作迟到检讨书
2014/02/21 职场文书
静心口服夜广告词
2014/03/20 职场文书
供应链金融服务方案
2014/05/25 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android
Docker下安装Oracle19c
2022/04/13 Servers