EcmaScript 6学習の入門

2667 ワード

1、const and for..of loops
定数を再割り当てすることはできません.繰り返し宣言することはできません.
ブラウザのサポート状況: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();          ,    。