全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Javascript中引用类型传递的知识点小结

JS里面哪些类型是引用类型?

Object类型都是引用类型.(function,array,date,regexp..)

JS哪些类型是值传递?

基本类型都是值传递.值传递就是重新copy一个副本进行传递.

如何把值类型的变量以引用类型的方式进行传递?

通过把基础类型包装之后可以以引用类型传递.

ECMAScript提供了三个特殊的引用类型(基本包装类型): Boolean,String,Number.

引用类型与基本包装类型的区别: 对象的生存期不同.

见代码:

var str = "hello js"; 
var str2 = str.substring(2,5); 


// str2的形成 在JS内部是这样实现的.

var str = new String('hello js');
var str2 = str.substring(2,5);
str = null ;

引用类型的内存分配

如: var o = {name: ‘kobe'};

栈: 保存的是一个指针,指向的是对象在堆上面的内存地址.我们通过指针句柄来操作堆上面的对象.

理解== 与 === 的区别

“===” 严格运算符

严格运算符的运算规则:

1、不同数据类型

如果两个值的类型不同,直接返回false。

2、同一类型的基本数据类型(string,boolean,number)

同一类型的原始类型的值(数值、字符串、布尔值)比较时,值相同就返回true,值不同就返回false。

3、同一类型的复合数据类型

两个复合类型(对象、数组、函数)的数据比较时,不是比较它们的值是否相等,而是比较它们是否指向同一个对象。

console.log( [1] === [1] ) // false

4、undefined和null

undefined 和 null 与自身严格相等。

console.log( null === null ) // true
console.log( undefined === undefined ) // true

“==” 相等运算符

相等运算符在比较相同类型的数据时,与严格相等运算符完全一样。

在比较不同类型的数据时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较。类型转换规则如下(以下讨论的是不同类型):

1、都是原始类型的值得情况

原始类型的数据会转换成数值类型再进行比较。

2、对象与原始类型值比较

对象(这里指广义的对象,包括数值和函数)与原始类型的值比较时,对象转化成原始类型的值,再进行比较。

3、undefined和null

undefined和null与其他类型的值比较时,结果都为false,它们互相比较时结果为true

console.log( null == undefined ) // true

4、相等运算符的缺点

相等运算符隐藏的类型转换,会带来一些违反直觉的结果。

console.log( "" == "0" ) // false 
console.log( 0 == "" ) // true
console.log( 0 == "0" ) // true
console.log( false == "false" ) // false
console.log( false == "0" ) // true

还有一个就是涉及undefined的条件判断,undefined与null的条件判断.可能会对你的代码造成印象.

var a = undefined;
if(!a){
 console.log("1"); //1
}

var a = undefined;
if(a === null){
 console.log("1"); //无输出
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# javascript  # 引用传递  # 引用类型  # javascript的引用类型  # JS是按值传递还是按引用传递  # Js从头学起(基本数据类型和引用类型的参数传递详细分析)  # JavaScript传递变量: 值传递?引用传递?  # javascript的字符串按引用复制和传递  # 按值来比较介绍与应用  # JavaScript对象参数的引用传递  # JavaScript中的值是按值传递还是按引用传递问题探讨  # 运算符  # 的是  # 都是  # 不同类型  # 是这样  # 句柄  # 会对  # 还有一个  # 这篇文章  # 再用  # 谢谢大家  # 转换成  # 都为  # 先将  # 转化成  # 与其他  # 布尔值  # 有疑问  # String  # ECMAScript 


相关文章: 网页设计与网站制作内容,怎样注册网站?  如何在万网开始建站?分步指南解析  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  盘锦网站制作公司,盘锦大洼有多少5G网站?  如何选择网络建站服务器?高效建站必看指南  高防服务器租用指南:配置选择与快速部署攻略  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  C++中引用和指针有什么区别?(代码说明)  小型网站建站如何选择虚拟主机?  如何使用Golang table-driven基准测试_多组数据测量函数效率  如何规划企业建站流程的关键步骤?  建站上市公司网站建设方案与SEO优化服务定制指南  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  如何快速辨别茅台真假?关键步骤解析  如何选择高性价比服务器搭建个人网站?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  高端建站如何打造兼具美学与转化的品牌官网?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  C#如何序列化对象为XML XmlSerializer用法  如何将凡科建站内容保存为本地文件?  建站之星后台密码遗忘如何找回?  建站之星3.0如何解决常见操作问题?  西安专业网站制作公司有哪些,陕西省建行官方网站?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何用搬瓦工VPS快速搭建个人网站?  建站之星导航菜单设置与功能模块配置全攻略  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  如何在IIS中配置站点IP、端口及主机头?  javascript中的try catch异常捕获机制用法分析  如何续费美橙建站之星域名及服务?  大连 网站制作,大连天途有线官网?  如何快速启动建站代理加盟业务?  教程网站设计制作软件,怎么创建自己的一个网站?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  大同网页,大同瑞慈医院官网?  如何快速搭建支持数据库操作的智能建站平台?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  如何高效搭建专业期货交易平台网站?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在搬瓦工VPS快速搭建网站?  免费网站制作appp,免费制作app哪个平台好?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何用IIS7快速搭建并优化网站站点?  公司网站的制作公司,企业网站制作基本流程有哪些?  定制建站是什么?如何实现个性化需求?  购物网站制作公司有哪些,哪个购物网站比较好? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。