#JavaScriptの暗黙の型変換の例
##JavaScriptの等価演算子
JavaScriptには、2種類の比較方法があります。
-
等価演算子(==)
暗黙の型変換をして比較する -
厳密等価演算子(===)
オペランド同士を型変換することなく、型や値を厳密に比較する
JavaScript
console.log(1 == '1'); // true
console.log(1 === '1'); //false
上記の等価演算子
による比較の例では、
暗黙的に型変換されて、trueがreturnされます。
それに対して、厳密等価演算子
による比較の例では、
数値型の1と文字列型の1として比較するため、falseがreturnされます。
ちなみにJavaScriptには5つの基本型があります。
・ 文字列型
・ 数値型
・ ブーリアン型
・ null型
・ undefined型
##暗黙の型変換の例
JavaScriptの暗黙の型変換によって
以下の例はすべてtrueになります。
0 == '' //true
0 == '0' //true
0 == false //true
1 == true // true
0 >= null //true
null == undefined // true
##暗黙の型変換によって起こること
###■文字列値やブーリアンの型変換
> 1 + '1'
> 11
> 1 + true
> 2
###■オブジェクト型のインスタンスの型変換
JavaScript
var s1 = new String("JavaScript");
var s2 = new String("JavaScript");
//文字列の内容は同じだが、参照先のオブジェクトが異なるためfalse
s1 == s2; // false
s1 === s2; // false
//ここで +'' すると…
//暗黙の型変換により、文字列値どうしの比較になるためtrue
s1 + '' == s2 + ''; //true
s1 + '' === s2 + ''; //true
といった挙動をするのがJavaScriptです。