1. 程式人生 > >一,ES6新增let關鍵字使用方法

一,ES6新增let關鍵字使用方法

之前宣告一個變數都是用關鍵字var來宣告,現在可以用let關鍵字來聲明瞭,其實用var來宣告變數是有缺點的,不信請君往下看。

肯定好多人這樣做過想彈其下標:

var li=document.getElementsByTagName("li");
for(var i=0;i<li.length;i++){
li[i].onclick=function(){
alert(i);
}
}

不過結果卻是不盡人意,因為總是彈li的長度;咱們再看一下用let關鍵字來宣告變數

var li=document.getElementsByTagName("li");
for(let i=0;i<li.length;i++){
li[i].onclick=function(){
alert(i);
}
}
和上面一樣,只是把var換成了let現在在點選li你會驚奇的發現,竟然彈得是li的下標,

為什麼用let就可以彈其下標,此方法用var就不可以呢?這是因為let宣告的變數僅僅在自己的塊級作用域起作用,出了這個塊級作用域就不起作用;

那什麼是快呢,其實就是花括號{ ......}。花括號裡面的語句就屬於一個快,花括號裡面用let宣告的變數在外面是不可見的,

用var宣告的變數會出現  “變數提升”(不懂得留言問我,我會詳細解答),而使用let宣告的變數不會出現這種情況;

同一個塊級作用於內不允許重複宣告相同的變數

例如:{

var name="豬八戒";

let name="孫悟空"//報錯 因為name已經用var宣告過

}

例如:{

let name="豬八戒";

let name="孫悟空"//報錯     因為name已經用let宣告過

}

函式內不能用let宣告函式的引數

例如:

function fun(name){

let name="孫悟空";//報錯  因為重複聲明瞭 

alert(name);

}

fun("老沙")