当使用null进行检查时,感叹号等于符号和exlamation 2x等于符号之间的差异
Difference between exclamation equals sign and exlamation 2x equals sign when checking with null
在使用null进行检查时,javascript中的next-if语句之间有什么区别?
var a = "";
if( a != null ) // one equality sign
....
if( a !== null ) // two equality sign
....
当与null进行比较时,我找不到任何区别。
根据http://www.w3schools.com/js/js_comparisons.asp
!= - not equal
!== - not equal value or not equal type
在JavaScript中,null
的类型为:object
(请尝试执行以下句子typeof null
)。
也就是说,在检查引用是否相等之前,!==
将检查a
也是object
。
实际上,您知道===
和!==
用于检查等式的左侧和右侧是否具有相同的类型,而不涉及隐式转换。例如:
"0" == 0 // true
"0" === 0 // false
同样的推理适用于null
检查。
!=
检查
负相等
而CCD_ 11检查
负同一
例如,
var a = "";
a != false; //returns false since "" is equal false
a !== false; //returns true since "" is not same as false
但如果您将其与null进行比较,则该值在两个会话中都将为true,因为""
既不等于也不等于null
与null相比,它们之间没有区别。
当我们使用严格相等(!=)时,这是显而易见的,因为它们有不同的类型,但当我们使用松散相等(!=)时记住关于JavaScript语言设计是一件重要的事。
由于语言设计的原因,还有一些常见的问题:
-
如何在JavaScript中检查空字符串?
-
是否有标准函数来检查JavaScript中的null、未定义或空白变量?
var a = "";
(1) if( a != null ) // one equality sign
Above condition(1) checks value only and not data-type, this will return true.
....
(2) if( a !== null ) // two equality sign
This checks value and data-type both, this will true as well.
为了更准确地理解它,
var a = "1";
if( a == 1) {
alert("works and doesn't check data type string");
}
if( a === 1) {
alert('doesn't works because "1" is string');
}
if( a === "1") {
alert('works because "1" is string');
}
如果变量的值未定义,则存在差异:
var a = undefined;
if( a != null ) // doesn't pass
console.log("ok");
if( a !== null ) // passes
console.log("ok");
从阅读这篇伟大的文章中得到了想法Why==null,Not====null。还有!=速度更快。
相关文章:
- 在.csv文件中写入学位符号
- 使用相同的数据集绘制各种符号
- 将带点符号的属性(有时)传递给函数
- RegEx JavaScript:数字后的符号提取
- 如何在计算器符号为零时替换它
- 删除输入中输入的符号
- 如何在ReactJs中渲染重音符号
- 如何替换JavaScript字符串中除字母和数字之外的所有内容(空格/符号)
- 插入符号到底是什么
- 删除图形和数字之间的连字符(-)符号
- 浏览器intl.NumberFormat未正确显示货币符号
- JS toLocaleString始终显示货币符号,而不考虑区域设置
- 将插入符号位置移动到ContentEditable<DIV>
- 为更改的输入返回插入符号位置的逻辑
- 包含转义符号的正则表达式
- 获取插入符号相对于行可见起点的位置
- 单词边界是否适用于符号字符
- 如何在角度js中获取特定的货币符号(在我的例子中是卢比符号)而不是默认的货币符号(美元$符号)
- javascript中^(插入符号)符号的含义和功能
- d3.js中单个节点中的复杂符号,其中符号依赖于数据