我经常看到JavaScript代码检查未定义的参数等,这样:
if (typeof input !== "undefined") {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
这似乎有点浪费,因为它涉及类型查找和字符串比较,更不用说它的详细程度.这是必要的,因为'undefined'可以重命名.我的问题是:代码如何比这种方法更好:
if (null != input) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
据我所知,你不能重新定义null,所以它不会意外地破坏.并且,由于!=运算符的类型强制,这将检查undefined和null ...这通常正是您想要的(例如,对于可选的函数参数).然而,这种形式似乎并不普遍,它甚至会导致JSLint对你使用邪恶的!=运算符大喊大叫.为什么这被认为是不好的风格?
在JavaScript中,使用double equals(==)与使用triple equals(===)之间是否存在性能差异?
示例:if (foo == bar)vsif (foo === bar)