EcmaScript 6学習の入門
2667 ワード
1、const and for..of loops
定数を再割り当てすることはできません.繰り返し宣言することはできません.
ブラウザのサポート状況:IE 11,FF 31+,chrome 35+,opera 2+,safari 6+,node 0.10+,
2、 default function parameters,ONLY supplied by FF now.
javascript 1.xでは、関数パラメータのデフォルト値はundefinedですが、一部のシーンではデフォルト値を設定する必要がある場合があります.この新しい特性が役立ちます.
まず、従来の実装方法を見てみましょう.
新fetureの書き方:
新しいパラメータが入力された場合は、入力されたパラメータ演算が使用されます.
パラメータが配列であることもサポートされていますが、ローカル変数かグローバル変数かに注意する必要があります.
では、パラメータで別のメソッドを呼び出すと、次のようになります.
test 2()を実行すると、「est」がポップアップされ、「est 2」がポップアップされます.つまり、パラメータの呼び出しは常に
方法体の実行は、上の例を改造します.
このときtest 2()を実行するとTypeError:test is not a functionと報告されます
3、rest parameter,only supplied by FF now.
注意パラメータの...接頭辞は、残りのパラメータをこの配列タイプのパラメータにすべて詰め込むことを示す必要があります.
次のように呼び出します.
定数を再割り当てすることはできません.繰り返し宣言することはできません.
ブラウザのサポート状況:IE 11,FF 31+,chrome 35+,opera 2+,safari 6+,node 0.10+,
const a = 'const_a';
console.log('This is a const : ' + a);
//browser supply : FF31+ ,chrome37+,safari7.1+
var arr = ['apple','orange','banana'];
for (var i of arr) {
console.log(i);
}
2、 default function parameters,ONLY supplied by FF now.
javascript 1.xでは、関数パラメータのデフォルト値はundefinedですが、一部のシーンではデフォルト値を設定する必要がある場合があります.この新しい特性が役立ちます.
まず、従来の実装方法を見てみましょう.
function multiply(a, b) {
b = typeof b !== 'undefined' ? b : 1;
return a*b;
}
新fetureの書き方:
function multiply(a, b = 1) {
return a*b;
}
multiply(5);
新しいパラメータが入力された場合は、入力されたパラメータ演算が使用されます.
multiply(5,3);//return 15
パラメータが配列であることもサポートされていますが、ローカル変数かグローバル変数かに注意する必要があります.
function append(value, array = []) {
array.push(value);
return array;
}
append(1); //[1]
append(2); //[2], not [1, 2]
では、パラメータで別のメソッドを呼び出すと、次のようになります.
function test(){
alert('test');
}
function test2(a=test()){
alert('text2');
}
test 2()を実行すると、「est」がポップアップされ、「est 2」がポップアップされます.つまり、パラメータの呼び出しは常に
方法体の実行は、上の例を改造します.
function test2(a=test()){
function test(){
alert('test');
}
}
このときtest 2()を実行するとTypeError:test is not a functionと報告されます
3、rest parameter,only supplied by FF now.
function test(a, b, ...theArgs) {
console.log(theArgs + ',length=' + theArgs.length);
}
注意パラメータの...接頭辞は、残りのパラメータをこの配列タイプのパラメータにすべて詰め込むことを示す必要があります.
次のように呼び出します.
test(1)
test(1,3)
test(1,3,3)
test(1,3,3,5)
:
,length=0
3,length=1
3,5,length=2
arguments , ?
(1)rest parameter , arguments
(2)arguments Array , rest parameter Array , sort,map,forEach,pop 。
(3)arguments ( callee )
:
1) function multiply(multiplier, ...theArgs) {
return theArgs.map(function (element) {
return multiplier * element;
});
}
var arr = multiply(2, 1, 2, 3);
console.log(arr); // [2, 4, 6]
,
(2)function sortRestArgs(...theArgs) {
var sortedArgs = theArgs.sort();
return sortedArgs;
}
console.log(sortRestArgs(5,3,7,1));
function 。 var sortedArgs = theArgs.sort(); var sortedArgs = arguments.sort(); , 。