今天在处理某个 JavaScript 函数的过程中,犯了一个错误。我下意识地认为 null==0 是成立的。
我们知道 null===0 肯定是不成立的。但 null==0 呢?
JavaScript 是弱类型语言,有一套复杂的类型转换规则。记忆中 null 转换为布尔值应该是 false,而且 0 也是这样,于是就想当然地认为这个相等是成立的。
但是,相等运算符(==)并不是把两个值转换为布尔值之后再进行比较,它有自己的一套比较规则。我查阅了《JavaScript 权威指南》,结果证明我最初的想法是错误的。
这就是今天的一点收获。同时也要承认,作为一个 JavaScript 初学者,自己的基础还是有很多薄弱的地方!
今天在处理某个 JavaScript 函数的过程中,犯了一个错误。我下意识地认为
null==0是成立的。我们知道
null===0肯定是不成立的。但null==0呢?JavaScript 是弱类型语言,有一套复杂的类型转换规则。记忆中
null转换为布尔值应该是false,而且0也是这样,于是就想当然地认为这个相等是成立的。但是,相等运算符(
==)并不是把两个值转换为布尔值之后再进行比较,它有自己的一套比较规则。我查阅了《JavaScript 权威指南》,结果证明我最初的想法是错误的。这就是今天的一点收获。同时也要承认,作为一个 JavaScript 初学者,自己的基础还是有很多薄弱的地方!