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 なのは気持ち悪いので === を使おっと。
ピンバック: [JavaScript]this参照が変わらないようにsetTimeoutを実行したい « イナヅマTVログ