javascript - 为什么 JSLint 推荐 x === "undefined"而不是 typeof x == "undefined"?

标签 javascript jquery undefined jslint typeof

我对 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/

相关文章:

javascript - Jquery 提取 json 表示 {41 : Array[2], 42: Array[1]}

javascript - 在全局范围内声明图像变量不会被分配,但在函数内部会被分配

javascript - jQuery 将参数传递给 .ajax()

javascript - flot x 轴刻度标签未与更改数据上的堆栈条形图对齐

javascript - 如何为 node.js 中的 MongoDB 索引指定 javascript 对象中的属性顺序?

jquery - 使用 val() 在多选中预选选项

javascript - 检查 mousedown 和 mouseup 事件是否同时触发

jquery - 统计DataTables中某个单词出现的总次数

javascript - 使用 AJAX 为 plupload 回显值

PHP 错误 : Undefined offset: 1