久しぶりにjavascriptで遊んでみた
spidermonkeyのversionが1.8だったので、javascriptの1.8(1.7)の機能で遊んでみる
//多重代入 var [leta, a] = [[],[]]; //let //これで状態を持った変数をつくることができる。 for(var i=0; i<3; i++){ let(i=i){ leta[i]=function(){print(i)} }; //(function(i){leta[i]=function(){print(i)}})(i); と同じ感じ。 a[i] = function(){print(i)}; } //returnを省略できるsyntax-sugar function complain(name) function(){print("==", name, "==")} ; leta.unshift(complain("leta")); a.unshift(complain("a")) a.forEach(function(e){e()}); //Array.forEach(a, function(e){e()}) というようにthisを指定して呼び出すこともできる //1.7とかの機能じゃないけど>< leta.forEach(function(e){e()}); // == a == // 3 // 3 // 3 // == leta == // 0 // 1 // 2 //あと、配列の生成も楽にできる function range(from, to){ for(var i=from; i<to; i++){ yield i} } print([i for(i in range(1,10))]) print([i*i for(i in range(1,10))]) print([i*i*i for(i in range(1,10)) if(i%2 == 1)]) // 1,2,3,4,5,6,7,8,9 // 1,4,9,16,25,36,49,64,81 // 1,27,125,343,729