使用空数组时比较运算符 JavaScript 的奇怪行为
Weird behavior of comparison operator JavaScript when using empty array
你能解释一下这种奇怪的JavaScript行为吗?
第一:
[] === [] false
[] == [] false
为什么是假的?对象是相同的,因此它应该返回 true。
第二:
[] !== [] true
[] != [] true
再说一遍,为什么是真的?对象是相同的。
它们并不相同。对象标识由指向同一实例的两个操作数定义。
var a = [],
b = [];
a == b; // false
a == a; // true
两个文本总是计算为两个不同的实例,这两个实例不被视为相等。如果您正在寻找结构等效性,请参阅如何在 JavaScript 中比较数组?。
对象不相同。在这种情况下,您可以比较对对象的引用。简单来说,您可以比较内存中这些对象所在的地址。此规则与比较实际值的基元无关。
相关文章:
- 这是什么 ==- javascript 运算符
- Javascript逻辑运算符和字符串/数字
- Javascript,如果条件在没有&&逻辑运算符当&&它不起作用
- 需要有关 HTML 中 Javascript 运算符比较的帮助
- ~ 和 - Javascript 运算符问题
- Javascript:++运算符如何工作
- JavaScript运算符+dons'工作不正常
- 使用Javascript+=运算符的正确方法
- Javascript 运算符问题.值必须至少为 4 且为偶数
- Javascript ||运算符仍返回 NaN
- Javascript:运算符重载
- 对 JavaScript 运算符的建议
- 使用JavaScript运算符 - 对我来说是新的
- Javascript 运算符 += 不会接受负数
- 是新的,这个,删除,类型是javascript运算符
- JavaScript运算符||(逻辑OR)
- 为什么“;new Date().toString()"给定Javascript运算符优先级的工作
- 为什么Javascript运算符“&&”如此奇怪
- Javascript ||运算符根据顺序给出不同的结果
- JavaScript && 运算符没有 =