扫码关注官方订阅号
现在知道a="0"和a=" ",A=new Array()。但是不明白其中的道理,a="0",还能理解,但是后面两个就理解不了。特别是最后一个。
a="0"
a=" "
A=new Array()
认证0级讲师
Boolean('0') == true // 非空字符串 Boolean(' ') == true // 非空字符串 Boolean([]) == true // 对象 '0' == false // Boolean(Number('0')); ' ' == false // Boolean(Number(' ')); [] == false // // Boolean([].toString());
在==比较时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较比较字符串和布尔值都会转换成数值,提一下!!符号相当于Boolean。对于非布尔值的数据,取反运算符会自动将其转为布尔值。规则是,以下六个值取反后为true,其他值取反后都为false。
undefined null false 0(包括+0和-0) NaN 空字符串('')所以:
Number('0') == 0, !'0' == false, Number(false) == 0 Number(' ') == 0, !' ' == false, Number(false) == 0
对象与原始类型值比较时,对象转化成原始类型的值,再比较所以:
var a = []; a.toString == '', Number('') == 0, ![] == false, Number(false) == 0
这是我的理解,其实这只是一种想法,全部转化为Boolean来比也不会有错。
答案参考:阮老师的 取反运算符
理解不了是什么意思喔?a = new Array() 意思就是 创建一个新的空数组赋值给a 也可以写成 a = [];前面俩都是字符串赋值给a~~
建议看下JavaScript高级程序设计3的第一章,有很好的解释。找不到资源,联系我
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
在==比较时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较
比较字符串和布尔值都会转换成数值,提一下!!符号相当于Boolean。
对于非布尔值的数据,取反运算符会自动将其转为布尔值。规则是,以下六个值取反后为true,其他值取反后都为false。
undefined null false 0(包括+0和-0) NaN 空字符串('')
所以:
对象与原始类型值比较时,对象转化成原始类型的值,再比较
所以:
这是我的理解,其实这只是一种想法,全部转化为Boolean来比也不会有错。
答案参考:阮老师的 取反运算符
理解不了是什么意思喔?
a = new Array() 意思就是 创建一个新的空数组赋值给a 也可以写成 a = [];
前面俩都是字符串赋值给a~~
建议看下JavaScript高级程序设计3的第一章,有很好的解释。找不到资源,联系我