我对 JSLint 感到困惑。
我的代码最初检查 div:jqmData("me")
是否像这样未定义:
if ( typeof el.jqmData("me") == "undefined"
? el.not(':jqmData(panel="main")').length > 0
: el.not(':jqmData(me="first")').length > 0 ){
}
JSLint 提示我应该用 ===
替换 typeof
的检查,所以我这样做了:
if ( el.jqmData("me") === "undefined"
? el.not(':jqmData(panel="main")').length > 0
: el.not(':jqmData(me="first")').length > 0 ){
}
JSLint 不再提示,但我的嵌套 if 语句被破坏了,因为我现在总是以第二个 if el.not(':jqmData(me="first")') 结束。长度
即使我不应该。
问题:
为什么 JSLint 推荐 ===
而不是 typeof == undefined
?这怎么会打破我的逻辑?
感谢您的一些启发...
最佳答案
您破坏了比较逻辑。假设您使用
typeof el.jqmData("me") === "undefined"
或
el.jqmData("me") === undefined
就我个人而言,我会选择后者。
我个人认为在这种特殊情况下进行这种特殊的 JSLint 检查意义不大。
关于javascript - 为什么 JSLint 推荐 x === "undefined"而不是 typeof x == "undefined"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13203960/