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中出现乱码的处理心得
Dec 24 Javascript
window.open()详解及浏览器兼容性问题示例探讨
May 29 Javascript
jQuery中:image选择器用法实例
Jan 03 Javascript
javascript中typeof操作符和constucor属性检测
Feb 26 Javascript
JS实现下拉菜单赋值到文本框的方法
Aug 18 Javascript
AngularJs入门教程之环境搭建+创建应用示例
Nov 01 Javascript
Javascript 正则表达式校验数字的简单实例
Nov 02 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
Feb 05 Javascript
jQuery实现表单动态添加数据并提交的方法
Jul 19 jQuery
JS跨浏览器解析XML应用过程详解
Oct 16 Javascript
微信小程序反编译的实现
Dec 10 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
Mar 01 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中的类-什么叫类
2006/11/20 PHP
ajax取消挂起请求的处理方法
2013/03/18 PHP
php中socket通信机制实例详解
2015/01/03 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
PDO::quote讲解
2019/01/29 PHP
奇妙的js
2007/09/24 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
js显示时间 js显示最后修改时间
2013/01/02 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
JavaScript DOM事件(笔记)
2015/04/08 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
Django实现基于类的分页功能
2019/10/31 Python
python django中8000端口被占用的解决
2019/12/17 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
区分python中的进程与线程
2020/08/13 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
北美最大的手工艺品零售商之一:Michaels Stores
2019/02/27 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
销售人员获奖感言
2014/02/05 职场文书
流动人口婚育证明
2014/10/19 职场文书
大学生党员个人总结
2015/02/13 职场文书
教师工作态度自我评价
2015/03/05 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
Redis数据同步之redis shake的实现方法
2022/04/21 Redis