javascript运算符==和lodash方法uz.eq()之间的差异?

javascript运算符==和lodash方法uz.eq()之间的差异?,javascript,ecmascript-6,comparison,lodash,Javascript,Ecmascript 6,Comparison,Lodash,javascript中的===比较器和lodash中的q.eq()方法之间有区别吗 \uuq.eq()() 在两个值之间执行SameValueZero比较,以确定 它们是等价的 更新 不确定是否检查同一类型,如===运算符 7.2.10SameValueZero(x,y)# 内部比较抽象操作SameValueZero(x,y),其中 x和y是ECMAScript语言值,生成true或false。这样的 比较如下所示: 如果类型(x)与类型(y)不同,则返回false。如果类型(x)为 如果x为N

javascript中的===比较器和lodash中的q.eq()方法之间有区别吗

\uuq.eq()()

在两个值之间执行SameValueZero比较,以确定 它们是等价的

更新

不确定是否检查同一类型,如===运算符

7.2.10SameValueZero(x,y)#

内部比较抽象操作SameValueZero(x,y),其中 x和y是ECMAScript语言值,生成true或false。这样的 比较如下所示:

如果类型(x)与类型(y)不同,则返回false。如果类型(x)为 如果x为NaN,y为NaN,则返回true。如果x是+0,y是 为-0,返回true。如果x为-0,y为+0,则返回true。如果x是 与y相同的数值,返回true。返回false。返回 SameValueNonNumber(x,y)。注SameValueZero与SameValue不同 仅在其处理+0和-0时

7.2.11SameValueNonNumber(x,y)#

内部比较抽象操作SameValueNonNumber(x,y), 如果x和y都不是数值,则生成true或false。这样的 比较如下所示:

断言:类型(x)不是数字。断言:类型(x)与类型(y)相同。 如果类型(x)未定义,则返回true。如果类型(x)为Null,则返回true。 如果类型(x)是字符串,那么如果x和y是完全相同的 代码单位(相同长度和相应索引处的相同代码单位), 返回true;否则,返回false。如果类型(x)是布尔型,那么如果x 和y均为真或均为假,返回真;否则,请返回 错。如果类型(x)是符号,那么如果x和y都是相同的符号 值,返回true;否则,返回false。如果x和y为true,则返回true 都是相同的对象值。否则,返回false


Loadash
\ eq
也检查
NaN
是否相等

\uq.eq(NaN,NaN)
=>正确

NaN===NaN
=>false


也许这会有所帮助。从该链接-
如果x是NaN,y是NaN,则返回true
-因此,不只是一条语句使其与
=
-不同,因为
NaN!==NaN
function eq(value, other) {
  return value === other || (value !== value && other !== other)
}