es6學習(一)---聲明及解構

聲明方式

  • let局部聲明
var a=2;
{ 
 let a=3;
}
console.log(a);//2
{
   let a=3;
}
console.log(a);//報錯

上面兩個例子說明了let是局部變量聲明,let聲明只在區(qū)塊內起作用,外部是不可以調用的。

for(let i=0;i<10;i++){
console.log('循環(huán)體中:'+i);
}
console.log('循環(huán)體外:'+i);//undefined

let用在循環(huán)體中可以防止外部i被污染

  • const聲明常量
    有些變量是希望聲明后在業(yè)務層就不再發(fā)生變化了,簡單來說就是從聲明開始,這個變量始終不變,就需要用const進行聲明。

變量的解構賦值

從數(shù)組和對象中提取值,對變量進行賦值,這被稱為解構

  • 數(shù)組的解構賦值
let [a,b,c]=[1,2,3];//a=1,b=2,c=3

可以簡單的理解為等號左邊和等號右邊的形式要統(tǒng)一,如果不統(tǒng)一解構將失敗

解構設置的默認值

let [foo = true] =[];
console.log(foo); //控制臺打印出true
  • 對象的解構賦值
let {foo,bar} = {foo:'hello',bar:'world};
console.log(foo+bar); //控制臺打印出了“helloworld”

如果在解構之前就定義了變量,這時候你再解構會出現(xiàn)問題。下面是錯誤的代碼,編譯會報錯。
要解決報錯,使程序正常,我們這時候只要在解構的語句外邊加一個圓括號就可以了。

let foo;
({foo} ={foo:'hello'});
console.log(foo); //控制臺輸出hello

擴展運算符

  • 對象擴展運算符(…)
function hello(...arg){
    console.log(arg[0]);
    console.log(arg[1]);
    console.log(arg[2]);
    console.log(arg[3]);
 
}
hello(1,2,3);//依次輸出1,2,3,undefined

擴展運算符的用處:
我們先用一個例子說明,我們聲明兩個數(shù)組arr1和arr2,然后我們把arr1賦值給arr2,然后我們改變arr2的值,你會發(fā)現(xiàn)arr1的值也改變了,因為我們這是對內存堆棧的引用,而不是真正的賦值。


2
3
4
5
let arr1=['www','akira','com'];
let arr2=arr1;
console.log(arr2);
arr2.push('lulu');
console.log(arr1);
//["www", "akira", "com"]
//["www", "akira", "com", "lulu"]

這是我們不想看到的,可以利用對象擴展運算符簡單的解決這個問題,現(xiàn)在我們對代碼進行改造。

let arr1=['www','akira','com'];
let arr2=[...arr1];
console.log(arr2);
arr2.push('lulu');
console.log(arr2);
console.log(arr1);
//["www", "akira", "com", "lulu"]
//["www", "akira", "com"]
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容