是时候祭出这个大杀器了:
https://dorey.github.io/JavaScript-Equality-Table/
点上边的三个 tab 可以分别看到 ==, ===, if() 的各种比较结果
另外,除非有明确的理由,否则最好使用 === 进行比较
看这个吧:http://stackoverflow.com/questions/19839952/all-falsey-values-in-javascript
这个答案把javascript所有的falsy value 都列出来了
13 回答12.8k 阅读
7 回答1.9k 阅读
5 回答1.4k 阅读
3 回答1.1k 阅读✓ 已解决
5 回答1.2k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答889 阅读✓ 已解决
也就是说,上面的
==
判断并不是把str
转换为布尔型来判断的,但是下面if
语句的条件必须是布尔弄,所以是转换为布尔型来判断的,那么试试这个很显示,
==
也不是把布尔型转换为字符串来比较的……其实
==
的比较确实是转换成字符串来比较但,但是在布尔型转换为字符串之前,要先转换成Number
,所以下面的实验就成功了