型変換時の比較について

javascript

概要

等値演算子で値が等しいかの判定が行われる時、型変換が実行されます。

例えば、下記のようなコードを書いて出力してみます。
(コメント部分は出力結果です)

//trueと出力
console.log(null == undefined);

//trueと出力
console.log("50" == 50);

//falseと出力
console.log(60 == false);

//trueと出力
console.log(0 == false);

//falseと出力
console.log("70" == false);

//trueと出力
console.log("0" == false);

上記の実行結果で、trueと返るコードがあります。

等値による比較を行っていますが、それぞれ左辺と右辺で異なる型を書いていますが、比較するタイミングで型の変換が行われ、それを基に結果(true/false)が出力されていることがわかります。

例えば「0 == false」の比較では、右辺のfalseが比較時に一度0として変換された後に処理されているのがわかります。

等値演算子と、同値演算子の比較

等値演算子「==」による比較は上記にようになりますが、同値演算子の場合はどうなるでしょうか。

試しに、上記の例の比較部分を全て同値演算子に変更したコードを書いてみます。

//falseと出力
console.log(null === undefined);

//falseと出力
console.log("50" === 50);

//falseと出力
console.log(60 === false);

//falseと出力
console.log(0 === false);

//falseと出力
console.log("70" === false);

//falseと出力
console.log("0" === false);

上記の結果、全てfalseとして判定されました。

同値演算子の場合は、動的に型変換が行われず、厳密に型が違う為にfalseを返す挙動になります。

javascriptでは、値の変換がおこる場合、演算子や文で必要とされる型への変換が動的に行われます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です