EcmaScript6學習之入門

1、const and for..of loops

一個常量不可以被重新賦值,並且不能被重複聲明

瀏覽器支持情況:IE11,FF31+,chrome35+,opera2+,safari6+,node0.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。

在javascript1.x中,函數參數的默認值爲undefined,但是有些場景下我們需要設置一個默認值,那麼這個新特性就會幫到你.

先看下以前的實現方式:

function multiply(a, b) {
b = typeof b !== ‘undefined’ ? b : 1;
return a*b;
}
new 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’);
}

如果執行test2(),看到的結果是先彈出’test’,再彈出’test2’,也就是說參數中的調用總是先於

方法體的執行的,我們現在再把上面的例子改造下:

function test2(a=test()){
function test(){
alert(‘test’);
}
}
這時候如果再執行test2(),則會報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 = argument

發佈了60 篇原創文章 · 獲贊 22 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章