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 相关文章推荐
javascript高亮效果的二种实现方法
Sep 14 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
Nov 14 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
May 10 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
May 30 Javascript
js实现不提示直接关闭网页窗口
Mar 30 Javascript
老生常谈js-react组件生命周期
May 02 Javascript
JavaScript贪吃蛇小组件实例代码
Aug 20 Javascript
JS原型继承四步曲及原型继承图一览
Nov 28 Javascript
jQuery解析json格式数据示例
Sep 01 jQuery
微信小程序登录对接Django后端实现JWT方式验证登录详解
Jul 29 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
Sep 27 Javascript
jquery使用echarts实现有向图可视化功能示例
Nov 25 jQuery
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
ie6 动态缩略图不显示的原因
2009/06/21 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
Vue实现简单分页器
2018/12/29 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
Python中文编码那些事
2014/06/25 Python
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
python2.7的编码问题与解决方法
2016/10/04 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
JAVA和C++区别都有哪些
2015/03/30 面试题
学前班教师的自我鉴定
2013/12/05 职场文书
母亲七十大寿答谢词
2014/01/18 职场文书
学生安全教育材料
2014/02/14 职场文书
留学顾问岗位职责
2014/04/14 职场文书
会计电算化专业求职信
2014/06/10 职场文书
领导干部对照检查材料
2014/08/24 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
2021/05/25 HTML / CSS
Pytorch中的数据集划分&正则化方法
2021/05/27 Python
canvas 中如何实现物体的框选
2022/08/05 Javascript
MySQL数据管理操作示例讲解
2022/12/24 MySQL