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 相关文章推荐
用于table内容排序
Jul 21 Javascript
jquery 日期分离成年月日的代码
May 14 Javascript
jQuery中创建实例与原型继承揭秘
Dec 21 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
Sep 12 Javascript
js HTML5 Ajax实现文件上传进度条功能
Feb 13 Javascript
酷! 不同风格页面布局幻灯片特效js实现
Feb 19 Javascript
javascript如何创建对象
Aug 29 Javascript
vue脚手架vue-cli的学习使用教程
Jun 06 Javascript
javaScript中的空值和假值
Dec 18 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
May 29 Javascript
js操作table中tr的顺序实现上移下移一行的效果
Nov 22 Javascript
Vue.js 无限滚动列表性能优化方案
Dec 02 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实现的方程求解示例分析
2016/11/11 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
javascript 动态创建表格
2015/01/08 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
vue.js实现备忘录demo
2019/06/26 Javascript
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
用Python遍历C盘dll文件的方法
2015/05/06 Python
python程序控制NAO机器人行走
2019/04/29 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
运动会跳远加油稿
2014/02/20 职场文书
班子四风对照检查材料
2014/08/21 职场文书
私人委托书格式
2014/09/10 职场文书
学校德育工作总结2015
2015/05/11 职场文书
少先队入队仪式主持词
2015/07/04 职场文书
2015年秋季小学开学标语
2015/07/16 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书