JSLint标记了这个:
if ($(stringToClean).html() == null)
...使用警告" 比较null,0,true,false或允许隐式类型转换的空字符串(使用===或!==)&# 34;
我的理解是,如果我有" ==="它只会检查null本身,但如果我有(像我一样)" =="它还会检查那些没有"没有"比如空字符串。
如果我的假设是正确的," =="在许多这样的情况下,实际上可能是理想的,不是吗?
答案 0 :(得分:1)
==
运算符检查值,而运算符===
检查值和类型。
例如:
5 == "5" -> true
5 === "5" -> false
了解null
,有必要考虑undefined
。
typeof(null) -> object
typeof(undefined) -> undefined
但
null == undefined -> true
在您的示例中,假设您尝试在没有任何匹配项的选择器上调用html()
方法:
$('#nonExistentDiv').html()
结果是undefined
。这意味着:
$('#nonExistentDiv').html() === null -> false
$('#nonExistentDiv').html() == null -> true
如果尝试使用现有但空的DIV元素,则会得到一个空字符串:
$('#emptyDiv').html() == null -> false
$('#emptyDiv').html() == 0 -> true (intresting!)
$('#emptyDiv').html() === "" -> true
所以:
if(myString == null)
。 if(myString === "")
if(myString)