unshiftメソッドを用いる。
['a', 'b', 'c'].unshift('e'); // e, a, b, c
unshiftは複数の要素を渡すことも可能。
unshiftメソッドを用いる。
['a', 'b', 'c'].unshift('e'); // e, a, b, c
unshiftは複数の要素を渡すことも可能。
switch文に関してかなり便利なイディオムを見つけたのでメモ。
switchの引数にtrueを渡しcase句で式を評価させることで、多分機のif elseif文をスッキリと記述することが出来る。
■PHPの場合
switch (true) { case $a == 1: break; case $a == 2: break; case $b == 5: break; }
■Javascriptの場合
switch (true) { case x == 1: break; case x == 2: break; case x == 3: break; }
どうやら賛否両論あるイディオムみたいだけど、breakをちゃんと書き忘れなければいいんじゃないかな。
と思う。
var json = { name: 'taro', age: 18 }; JSON.stringify(json);
(new Date).getFullYear() + '-' + ((new Date).getMonth() + 1) + '-' + (new Date).getDate();
冷静にインスタンス生成しすぎ。
まぁ時間の無い現代人がサクッと欲しい時のコピペ用。
eval()関数を用いると良い。
for(var i = 1; i <= 100; i++) { eval('var value_' + i + ';'); }
これでvalue_1?value_100までの変数が宣言されたことになる。
eval()は関数内の式を評価してくれるので、かなり動的な挙動を実装することが可能。
便利な反面注意も必要だね。
Javascriptにはstrictモードというものが存在しているらしい。
strictモードを有効にするとより構文のチェックが厳しくなるので、今まで動作していたスクリプトでもエラーとなってしまう可能性がある。
非strictとの違いはざっと下記の通り。
非strict | strict | |
---|---|---|
宣言されていない変数への代入 | グローバル変数が作成される | エラー |
書込み不可の変数への代入 書き込み不可プロパティへの代入 |
何も起きない | エラー |
削除不可のプロパティの削除 | 何も起きない | エラー |
プロパティ名の重複 | 最後に宣言したものがプロパティの値となる | エラー |
関数の引数名の重複 | 重複した引数がそれより前にある同名の引数を隠す | エラー |
8進数標記 | 8進数として処理される | エラー |
※さらなる詳細はscriptモードでググるべし。
Javascriptのソースコードの先頭行に下記を記述すると、strictモードになる。
'use strict';
※いかなる文字列よりも前に記述していなければならないので注意。
また特定の関数内部のみに適用することも可能。
function hoge() { 'use strict'; console.log('hoge'); }
的な感じ。
厳密にJSを書きたい時とかに便利だね。
めも。
// CSSの値を取得する。 getComputedStyle(element, '') // CSSフォーマットで記述されたテキストを取得する。 getComputedStyle(element, '').cssText
これめっちゃ便利。