来自:http ://www.2ality.com/2011/12/strict-equality-exemptions.html
JavaScript 有两个运算符用于确定两个值是否相等:
- 严格相等运算符 === 仅考虑具有相同类型的相等值。
- “正常”(或宽松)相等运算符 == 在比较严格相等之前尝试转换不同类型的值。
给 JavaScript 初学者的建议是完全忘记 == 并始终使用 ===。
但是不使用 == 运算符的原因是什么?会不会带来安全风险?
但是使用 typeof 运算符我们可以确定结果将是一个字符串。然后 == 可以安全使用,因为我们可以确定它不会执行任何转换恶作剧:
if (typeof x == "function") {
...
}