JavaScript - 比較演算子と関係演算子

比較演算子

比較演算子は、2 つの値の関係を調べて、その結果を true または false で返します。

 1  == 1;  // true
"1" == 1;  // true

 1  === 1; // true
"1" === 1; // false

JavaSript には厳密な比較と型変換の比較の両方があります。厳密な比較 === は、オペランドが同じ型で内容も一致している場合にのみ true になります。比較の機能は以下のとおりです。

  • 2 つの文字列が厳密に等しくなるのは、字の順序が等しく、長さが等しく、対応する位置の文字が等しいときです。
  • 2 つの数字が厳密に等しくなるのは、数値的に等しいとき です。NaN は、どんなものとも等しくなりません。+0-0 は等しくなります。
  • 2 つの論理オペランドが厳密に等しくなるのは、どちらも true か、どちらも false のときです。
  • 2 つの異なるオブジェクトは、厳密な比較でも抽象的な比較でも等しくなりません。
  • オブジェクト比較が等しくなるのは、オペランドが同じオブジェクトを参照しているときだけです。
  • nullundefined 型は、自分自身と厳密に等しく、また互いに抽象的に等しくなります。

等価演算子

等価演算子は、2 つのオペランドが同じ型でないならばオペランドを変換して、それから厳密な比較を行います。両方のオペランドがオブジェクトの場合、オペランドがメモリ内の同じオブジェクトを参照していれば等しくなります。

1    ==  1         // true
'1'  ==  1         // true
1    == '1'        // true
0    == false      // true
0    == null       // false

var object1 = {'key': 'value'}, object2 = {'key': 'value'}; 
object1 == object2 //false
0    == undefined  // false
null == undefined  // true

不等価演算子

不等価演算子は、オペランド同士が等しくないならば true を返します。2 つのオペランドが同じ型でないならば、オペランドを適切な型に変換して比較しようとします。両方のオペランドがオブジェクトの場合、オペランドがメモリ内の同じオブジェクトを参照していなければ等しくなります。

1 !=   2     // true
1 !=  '1'    // false
1 !=  "1"    // false
1 !=  true   // false
0 !=  false  // false

同値演算子

同値演算子は、型変換なしでオペランド同士が厳密に等しければ true を返します。

3 === 3   // true
3 === '3' // false

var object1 = {'key': 'value'}, object2 = {'key': 'value'};
object1 === object2 //false

不同値演算子

不同値演算子は、オペランド同士が等しくないか、型が等しくない、あるいはその両方ならば真を返します。

3 !== '3' // true
4 !== 3   // true

関係演算子

これらの演算子はそれぞれ、比較前に各オペランドに対して valueOf() 関数を呼び出します。

大なり演算子

大なり演算子は、左オペランドが右オペランドより大きければ true を返します。

4 > 3 // true

大なりイコール演算子

大なりイコール演算子は、左オペランドが右オペランド以上ならば true を返します。

4 >= 3 // true
3 >= 3 // true

小なり演算子

小なり演算子は、左オペランドが右オペランドより小さければ true を返します。

3 < 4 // true

小なりイコール演算子

小なりイコール演算子は、左オペランドが右オペランド以下ならば true を返します。

3 <= 4 // true
3 <= 3 // true

関連記事

JavaScript のまとめページはプログラミング JavaScript 入門を参照してください。

Category:
プログラミング
公開日:
更新日:
Pageviews:
31
Shares:
0
Tag:
JavaScript
hatebu icon
hatebu