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

 更新时间:2012年12月28日 10:31:27   作者:  
字符串是按引用复制和传递的,但是是按值来比较的;当按值复制或传递时,将在计算机内存中分配一块空间并将原值复制到其中,需要的朋友可以参考下
按值和按引用的比较
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

相关文章

  • Bootstrap基本插件学习笔记之按钮(21)

    Bootstrap基本插件学习笔记之按钮(21)

    这篇文章主要为大家详细介绍了Bootstrap基本插件学习笔记之按钮的相关资料,实现按钮状态控制等形式的交互,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 深入学习js函数的隐式参数 arguments 和 this

    深入学习js函数的隐式参数 arguments 和 this

    这篇文章主要介绍了 深入学习js函数的隐式参数 arguments 和 this,arguments是一个类数组结构,它保存了调用时传递给函数的所有实参;this是函数执行时的上下文对象, 这个对象有些让人感到困惑的行为。 下面分别对他们进行讨论。,需要的朋友可以参考下
    2019-06-06
  • JScript面向事件驱动的编程

    JScript面向事件驱动的编程

    JScript面向事件驱动的编程...
    2007-01-01
  • JS加载器如何动态加载外部js文件

    JS加载器如何动态加载外部js文件

    这篇文章主要介绍了JS加载器如何动态加载外部js文件的相关资料,需要的朋友可以参考下
    2016-05-05
  • 在js文件中如何获取basePath处理js路径问题

    在js文件中如何获取basePath处理js路径问题

    在jsp中,我们可以用el表达式直接获取basePath,但是在单独js文件中不能用el表达式,下面与大家分享下js文件中如何获取basePath,感兴趣的朋友可以参考下
    2013-07-07
  • BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法

    BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法

    弹出框(Popover)与工具提示(Tooltip)类似,提供了一个扩展的视图。本文给大家介绍BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法,喜欢的朋友参考下吧
    2016-04-04
  • JavaScript实现跟随滚动缓冲运动广告框

    JavaScript实现跟随滚动缓冲运动广告框

    这篇文章主要为大家详细介绍了JavaScript实现跟随滚动缓冲运动广告框,页面左右两边跟随式广告框,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 详解JWT token心得与使用实例

    详解JWT token心得与使用实例

    这篇文章主要介绍了详解JWT token心得与使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • JS实现表单中点击小眼睛显示隐藏密码框中的密码

    JS实现表单中点击小眼睛显示隐藏密码框中的密码

    这篇文章主要介绍了JS实现表单中点击小眼睛显示隐藏密码框中的密码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下
    2020-04-04
  • js实现公告自动滚动

    js实现公告自动滚动

    这篇文章主要为大家详细介绍了js实现公告自动滚动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05

最新评论