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 相关文章推荐
JQuery的ajax获取数据后的处理总结(html,xml,json)
Jul 14 Javascript
javascript制作loading动画效果 loading效果
Jan 14 Javascript
Js实现动态添加删除Table行示例
Apr 14 Javascript
Node.js编程中客户端Session的使用详解
Jun 23 Javascript
基于React.js实现原生js拖拽效果引发的思考
Mar 30 Javascript
Jquery基础之事件操作详解
Jun 14 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
Sep 04 Javascript
jquery仿微信聊天界面
May 06 jQuery
Node 自动化部署的方法
Oct 17 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
Nov 27 Javascript
JS实现Cookie读、写、删除操作工具类示例
Aug 28 Javascript
vue-router命名路由和编程式路由传参讲解
Jan 19 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五种设计模式小结
2011/03/23 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
js+css3实现旋转效果
2017/01/20 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
对vue中v-if的常见使用方法详解
2018/09/28 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
在Django中创建动态视图的教程
2015/07/15 Python
Python内建数据结构详解
2016/02/03 Python
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
Python3.x对JSON的一些操作示例
2017/09/01 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
详解numpy的argmax的具体使用
2019/05/27 Python
python进阶之自定义可迭代的类
2019/08/20 Python
python读取Kafka实例
2019/12/23 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
python缩进长度是否统一
2020/08/02 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
营业员个人总结的自我评价
2013/10/25 职场文书
模范教师事迹材料
2014/02/10 职场文书
个人承诺书
2014/03/26 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
Python实现Hash算法
2022/03/18 Python