厳密な等価性"==="
緩い等価性"=="
Object,is (es6d の新機能)
この記事では主に JavaScript の等価性の判断について説明します。お役に立てれば幸いです。
トリプル等号は、型変換なしで同じ比較を実行します (型が異なる場合、常に false を返します)、
両方の値が数値型の場合、どちらも NaN でない場合、および値が同じである、または 2 つの値がそれぞれ +0 と -0 である場合、2 つの値は一致するとみなされます
(1) 異なる種類の値
如果两个值的类型不同,直接返回false
(2) 同一クラスのプリミティブ型値
同一类型的原始类型的值(数值、字符串、布尔值)比较时,值相同就返回true,值不同就返回false。
(3) 同一クラスの複合型値
两个复合类型(对象、数组、函数)的数据比较时,不是比较它们的值是否相等,而是比较它们是否指向同一个对象。
(1) プリミティブ型の値
原始类型的数据会转换成数值类型再进行比较。字符串和布尔值都会转换成数值
(2) オブジェクトとプリミティブ型の値の比較
对象(这里指广义的对象,包括数值和函数)与原始类型的值比较时,对象转化成原始类型的值,再进行比较
(3) 未定義とnull
undefined和null与其他类型的值比较时,结果都为false,它们互相比较时结果为true
(4) 他の型と Boolean の間の等価比較
会首先把boolean 强制转换成 .toNumber();
Object.is(NaN, NaN) は true になります
Object.is (+0, -0) は false になります
比較表
関連する推奨事項:
以上がJavaScript 平等判断共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。