01647

ustreamer-01647

Javascriptプログラミングについて,最近知ったこと

未定義値確認のための比較にはundefinedでなくvoid(0)を使用しよう

undefinedはグローバル変数

あらゆる可能性を考慮に入れ、すべてのシチュエーションに対応し、エラーが起きる確率がたとえほんのわずかでもあるなら、決して見過ごさない。それがrobustなコードを書くための必須条件ですからね。

JavaScriptで`undefined`の代わりに、`void 0`を使ったほうがいい理由 | 株式会社LIG

せやな.

typeof演算子とNaN

戻り値
未定義 "undefined"
Null "object"
真偽値 "boolean"
数値 "number"
文字列 "string"
ホストオブジェクト 実装に委ねる
関数オブジェクト "function"
E4X XMLオブジェクト "xml"
E4X XMLListオブジェクト "xml"
他のオブジェクト "object"
typeof 演算子 - JavaScript | MDN

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

このコードを貰うついでに,関数リテラルについて調べた.

「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を使うらしい.