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 Cookie读写删除操作的函数
Mar 02 Javascript
JS实现简单的Canvas画图实例
Jul 04 Javascript
JavaScript中的console.time()函数详细介绍
Dec 29 Javascript
JS实现的数组全排列输出算法
Mar 19 Javascript
基于jquery编写分页插件
Mar 07 Javascript
bootstrap table复杂操作代码
Nov 01 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
Dec 31 Javascript
JavaScript之排序函数_动力节点Java学院整理
Jun 30 Javascript
微信小程序自定义prompt组件步骤详解
Jun 12 Javascript
微信小程序开发之左右分栏效果的实例代码
May 20 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
Jul 15 Javascript
详解JavaScript中分解数字的三种方法
Jan 05 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
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
php图片裁剪函数
2018/10/31 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
GRID拖拽行的实例代码
2013/07/18 Javascript
JS获取IP、MAC和主机名的五种方法
2013/11/14 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
基于JavaScript实现带数据验证和复选框的表单提交
2017/08/23 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
jquery实现聊天机器人
2020/02/08 jQuery
JavaScript实现答题评分功能页面
2020/06/24 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
2020/07/22 Javascript
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
Python实现的密码强度检测器示例
2017/08/23 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
仓库管理专业个人的自我评价
2013/12/30 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
员工团队活动方案
2014/08/28 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL