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 相关文章推荐
ExtJS 2.0实用简明教程 之ExtJS版的Hello
Apr 29 Javascript
js下用eval生成JSON对象
Sep 17 Javascript
javaScript同意等待代码实现心得
Jan 01 Javascript
jquery实现可拖拽弹出层特效
Jan 04 Javascript
JavaScript面向对象的实现方法小结
Apr 14 Javascript
Jquery 全选反选实例代码
Nov 19 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 jQuery
React-Native左右联动List的示例代码
Sep 21 Javascript
vue axios 表单提交上传图片的实例
Mar 16 Javascript
自定义Vue组件打包、发布到npm及使用教程
May 22 Javascript
django简单的前后端分离的数据传输实例 axios
May 18 Javascript
linux服务器快速卸载安装node环境(简单上手)
Feb 22 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-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
PHP判断是否为空的几个函数对比
2015/04/21 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成"...")
2016/11/28 Javascript
实例解析Array和String方法
2016/12/14 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
总结Python编程中函数的使用要点
2016/03/20 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
中秋节活动总结
2014/08/29 职场文书
出国签证在职证明范本
2014/11/24 职场文书
考研导师推荐信范文
2015/03/27 职场文书
交通安全温馨提示语
2015/07/14 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python
javascript函数式编程基础
2021/09/15 Javascript
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python