一,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("老沙")