作家
登录

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

作者: 来源:www.28hudong.com 2013-03-30 00:15:39 阅读 我要评论

按值和按引用的比较 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

  推荐阅读

  通过jQuery源码学习javascript(一)

Jquery这么普及,必有它过人之处,通过开源代码进行学习,是个不错的学习方法啊! 以下是我模拟的方法,我尽量简化方法。 定义对象C(类似于jquery的$方法)——这个也是jquery设计非常巧妙的地方 复制代码 代码如下>>>详细阅读


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

地址:http://www.17bianji.com/kaifa2/JS/22667.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)