JavaScript 平等判断共有

小云云
小云云オリジナル
2018-02-12 15:34:502113ブラウズ

JavaScript は 3 つの異なる値比較演算を提供します

  • 厳密な等価性"==="

  • 緩い等価性"=="

  • 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、-0、+0 に対して特別な処理が行われます。したがって、最後の 2 つは同じではありません。
Object.is(NaN, NaN) は true になります
Object.is (+0, -0) は false になります

比較表

JavaScript 平等判断共有

関連する推奨事項:

php 等価比較と empty、isset、isnull

以上がJavaScript 平等判断共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。