イナヅマTVログ

[JavaScript] 条件判定には===, !==を使いましょ

| 1件のコメント

JavaScriptしてますか。

2013年もJavaScriptな毎日が始まりました。
まっさらなプロジェクトで自分中心だとプレッシャーは大きいけどやりがいがあったりします。

共同で作業するのも刺激があって好きです。

今回は判定についてです。
条件分岐はScriptにつきものです、この条件の時にはああして、そうじゃなかったらこうして、と多くの局面で使われます。

判定条件の使い方を間違えると思いもよらない結果を招きます。

===, !== を使いましょ

== とか != で条件判定せずに===, !== を使えと先人が教えてくれます。

(function (){
	"use strict";
 
	var a, b = undefined;
	// 1
	console.log(a == null);
	// 2
	console.log(b == null);
 
	var c = ["red"];
	// 3
	console.log(c == "red");
}());

出力は全て“true”になります。

JSHintを使うと2は警告されます。
“Binary operation argument type null is not assignable to type undefined”

3も同じく警告されます。
“Binary operation argument type String is not assignable to type Array”

type(型)が違うと注意されます。

【おまけ】
AS界隈では==, !=が多いけどこれはどうなんだろう。
ActionScript 3だと型指定されてるからいいんかなぁ。

CreateJSは==, != なんだよなぁ。
気にし過ぎなのかしら。

いや、やっぱり [“red”] == “red” が true なのは気持ち悪いので === を使おっと。