オブジェクトの生成
new Object()は使わない。代わりにオブジェクトリテラルを使う。
→ コンストラクタに渡す値によって、呼び出されるコンストラクタが変わるため。
配列かどうかの検査
Array.isArray()は、引数が配列のときtrueを返す。
// Array.isArray()が未定義の場合は定義する if (typeof Array.isArray === "undefined") { Array.isArray = function (arg) { return Object.prototype.toString.call(arg) === "[object Array]"; } } var ary = [1, 2, 3]; var obj = {"key": "value"}; console.log(Array.isArray(ary)); // true console.log(Array.isArray(obj)); // false
正規表現
- 正規表現パターンが事前に分かっている場合、正規表現リテラルを使う
- 正規表現パターンを実行時に決定する場合、RegExp()の引数にパターンを渡す
エラーの投げ方
try { throw { name: "MyErrorType", message: "oops", extra: "This was rather embarrassing", remedy: genericErrorHandler }; } catch (e) { alert(e.message); e.remedy(); }