关于js中空值比较和传值的问题

昨天写导出功能时,有个条件审核状态,其中一个审核状态的key为0,我也是醉了。

然后我注意到这方面的问题,在网上找了找,我的理解可能有点问题。但是目前也就是这样了,以后在学习吧!

正文:

js中各种类型都是有个默认空值的,这个空值转成boolean类型的时候就是false

null、undefined、0、"" 这些数值都是其对应数据类型上的无效值或空值。还有这五个值作!运算,结果全为:true

还有如果是json请求传值的话,就是说如果转成string类型的话:

1  String(undefined) -> "undefined"
2  String(null) -> "null"
3  String("") -> ""
4  String(0) -> "0"
5  String(false) -> "false"

这个转换关系在做字符串累加时需要特别的注意。

 

 

相等运算符 (==、!=) 
如果两表达式的类型不同,则试图将它们转换为字符串、数字或 Boolean 量。 
NaN 与包括其本身在内的任何值都不相等。 
负零等于正零。 
null 与 null 和 undefined 相等。 
相同的字符串、数值上相等的数字、相同的对象、相同的 Boolean 值或者(当类型不同时)能被强制转化为上述情况之一,均被认为是相等的。 
其他比较均被认为是不相等的。 

恒等运算符 (===、!==) 
除了不进行类型转换,并且类型必须相同以外,这些运算符与相等运算符的作用是一样的。这个也就是说如果类型不一致。就算是1==="1"都是false

posted @ 2016-07-23 12:32  闲云意向东  阅读(2340)  评论(0编辑  收藏  举报