今までにないおもしろい言語。未来に生き残る言語はこれかも
オブジェクト(連想配列)の順序
http://d.hatena.ne.jp/holidays-l/20061206/p2
仕様では順序は保証されないらしい。
念のためIE6, IE7, Firefox2, Firefox3, Opera9.5, Safari3, Chromeで要素数増やした下記コードで調べてみても順序通りでした。
var a = {
'a':1, 'b':1, 'c':1, 'd':1, 'e':1, 'f':1,
'g':1, 'h':1, 'i':1, 'j':1, 'k':1, 'l':1,
'm':1, 'n':1, 'o':1, 'p':1, 'q':1, 'r':1, 's':1
};
for (var i in a){
document.write(i);
}
document.write('
');
a.t = 2;
a.u = 3;
a.v = 4;
a.w = 5;
a.x = 6;
a.y = 7;
a.z = 8;
delete a.a;
delete a.c;
delete a.f;
for (var i in a){
document.write(i);
}
Argumentsオブジェクトを配列にする
var array = Array.prototype.slice.call(arguments, 0, arguments.length);
nullなら空のオブジェクトにする
hoge ||= {};
グローバル空間を使わないようにする
(function(){
...
})();
型変換
via
http://www.ideaxidea.com/archives/2010/03/...
良く見る"!!" はbooleanへの型変換だったのか
var myVar = "3.14159",
str = ""+ myVar,// to string
int = ~~myVar, // to integer
float = 1*myVar, // to float
bool = !!myVar, /* to boolean - any string with length and any number except 0 are true */
array = [myVar]; // to array
10 Small Things You May Not Know About Javascript
http://samuli.hakoniemi.net/10-small-thing...
window.name session
window.name はブラウザ、タブを閉じるまで有効な空間
undefinedチェック
typeof foo != "undefined" でもいいが、
window.foo でOK
引数のデフォルト
function hoge(a){
a = a || {};
}
createDocumentFragment
え、何だこれ!DOM作成の一時領域?知らなかった…。