Javascriptプログラミングについて,最近知ったこと
リファレンス
- JavaScript | MDN Mozilla Developer Network
- とほほのJavaScriptリファレンス
- とほほのjQuery入門
未定義値確認のための比較にはundefinedでなくvoid(0)を使用しよう
undefinedはグローバル変数.
あらゆる可能性を考慮に入れ、すべてのシチュエーションに対応し、エラーが起きる確率がたとえほんのわずかでもあるなら、決して見過ごさない。それがrobustなコードを書くための必須条件ですからね。
JavaScriptで`undefined`の代わりに、`void 0`を使ったほうがいい理由 | 株式会社LIG
せやな.
typeof演算子とNaN
typeof 演算子 - JavaScript | MDN
型 戻り値 未定義 "undefined" Null "object" 真偽値 "boolean" 数値 "number" 文字列 "string" ホストオブジェクト 実装に委ねる 関数オブジェクト "function" E4X XMLオブジェクト "xml" E4X XMLListオブジェクト "xml" 他のオブジェクト "object"
parseInt(undefined)がNaNになり,これは"number"だった.判定にはisNaN()を使う.
function resetLevel(code).levelcode文字がスキル数より少ない場合の処理だ.あ.code.replace()で非数字を0に変えているんだから,NaN値だった場合はbreakしよう.
GETパラメータ取得と関数リテラル
/** * GETパラメータを配列にして返す * * @return パラメータのObject * */ var getUrlVars = function(){ var vars = {}; var param = location.search.substring(1).split('&'); for(var i = 0; i < param.length; i++) { var keySearch = param[i].search(/=/); var key = ''; if(keySearch != -1) key = param[i].slice(0, keySearch); var val = param[i].slice(param[i].indexOf('=', 0) + 1); if(key != '') vars[key] = decodeURI(val); } return vars; }JavaScriptでGETパラメーターを取得する - Qiita
このコードを貰うついでに,関数リテラルについて調べた.
- 関数 - JavaScript | MDN 関数式
- 連載:Ajax時代のJavaScriptプログラミング再入門:第2回 JavaScriptの関数をマスターしよう (2/4) - @IT
- 関数リテラル(匿名関数/無名関数) - 関数 - JavaScript入門
「function中で定義できるため,名前空間を汚さない」は理解した.他の利点は分からない.
n番目のセレクタを指定する:eq(n)とか
- eq(index) (1.0)
- eq(-index) (1.8)
対象要素の中で 0から数えて index番目の要素にマッチします。負の値を指定した場合は後ろから数えます。
とほほのjQuery入門
$("li.skillslot")で8個見つかるうちの3番目を指定したい場合は:eq(2)を付け足す.function setSlot(i, imgalt)
switch節で意図的にbreakを書かない技法はfall throughと呼ばれている
式を評価し、その式の値が case のラベルと一致するなら、その case に関連付けられた文を実行します。
switch - JavaScript | MDN
switch (skills[id].level) { // fall through case 3: totalspent += skills[id].level3; case 2: totalspent += skills[id].level2; case 1: totalspent += skills[id].level1; }TotalSkillPoint.prototype.get()
C#では認められていないため,gotoを使うらしい.