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 While 循环基础教程
Apr 05 Javascript
一些实用的jQuery代码片段收集
Jul 12 Javascript
两个listbox实现选项的添加删除和搜索
Mar 01 Javascript
jquery+css+ul模拟列表菜单具体实现思路
Apr 15 Javascript
jquery提交form表单时禁止重复提交的方法
Feb 13 Javascript
flash遮住div问题的正确解决方法
Feb 27 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
Mar 04 Javascript
vue.js+boostrap项目实践(案例详解)
Sep 21 Javascript
纯javascript版日历控件
Nov 24 Javascript
浅谈react.js 之 批量添加与删除功能
Apr 17 Javascript
vue生成随机验证码的示例代码
Sep 29 Javascript
浅谈 Vue 项目优化的方法
Dec 16 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
解析csv数据导入mysql的方法
2013/07/01 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
一个js实现的所谓的滑动门
2007/05/23 Javascript
JavaScript入门教程 Cookies
2009/01/31 Javascript
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
2020/11/12 Javascript
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
Python 错误和异常小结
2013/10/09 Python
python生成器generator用法实例分析
2015/06/04 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
python使用代理ip访问网站的实例
2018/05/07 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
DC Shoes澳大利亚官方网上商店:购买DC鞋子
2019/10/25 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
商业活动邀请函
2014/02/04 职场文书
好学生评语大全
2014/05/05 职场文书
开学典礼策划方案
2014/05/28 职场文书
学术会议领导致辞
2015/07/29 职场文书
公司安全管理制度范本
2015/08/05 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
SpringBoot整合Minio文件存储
2022/04/03 Java/Android