社内でJavaScriptの勉強会を開催してみました。
第2回目の今回は、JavaScriptの基礎文法とJavaScriptの型をテーマにお話しました。基礎文法についての資料を作成する際には、JavaScript基礎文法最速マスター - なんとなく日記 が非常に参照になりました。
参考にした資料
- [JavaScript]文末のセミコロンは必須ではないが、なるべく入れること。 - DQNEO起業日記
- JavaScriptのデータ型と変数の追記(jsのスコープ, nullとundefinedの違いについて) - Slow Dance
- 等価演算子(==)と厳密等価演算子(===) - Ajax専
- 未定義値(undefined) - 変数 - JavaScript入門
- オブジェクトとnull - JavaScriptのデータ型 - JavaScript入門
いくつか自分が答えられなかった質問があったので、それを以下に書こうと思います。
switch〜case文では、値を比較する際に型を意識してくれるの?
型を意識した厳密な比較をしてくれます。
var a = 0; switch (a) { case 0: alert("number zero"); break; case "0": alert("string zero"); break; default: alert("other"); break; } >>number zero var a = "0"; switch (a) { case 0: alert("number zero"); break; case "0": alert("string zero"); break; default: alert("other"); break; } >>string zero
文字列と数値を加算したら結果はどうなるの?
文字列になります。
var a = "15"; var b = 5; alert(a+b); alert(typeof(a+b)); >>155 >>string
オブジェクトの比較はどうするの?
文字列や数値同様、等価演算子で比較することができます。
var a = {}; // 空のオブジェクト var b = {}; // 空のオブジェクト alert(a == b); >>false
でも、参照をコピーした場合は、同じになります。
var a = {}; // 空のオブジェクト var b = {}; // 空のオブジェクト var c = a; alert(a == c); >>true