ES6基本語法之let和const


1.var可以重復聲明

var a = 12;
var a = 5;
alert(a) //5

2.var無法限制修改

如:PI = 3.1415;

3.var沒有塊級作用域

{


}

像:

 if(){

}
for(){

}

這都是塊級作用域,在這里面定義的變量則在塊級域外面是沒法使用的。

4.let和const不能重復聲明

let a =12;
let a=5;
alert(a)//報錯

const a =12;
const a=5;
alert(a)//報錯

5.let是可以重復修改的,但是const是常量,是不能重復修改的。

let a = 12;
a = 5;
alert(a); //5

const a = 12;
a = 5;
alert(a);//報錯

6.塊級作用域

if(true){
let a = 12;
}
alert(a);//報錯,a is not defined

if(true){
const a = 12;
}
alert(a);//報錯,a is not defined

語法快不僅僅是if,for等這些,如下面的也是塊級作用域:

{
let a = 5;
console.log(a) //5
}
console.log(a); //報錯,a is not defined

7.塊級作用域的用法:

現在有三個button,分別點擊,傳統的寫法是:

window.onload = function(){
var aBtn = document.getElementByTagName("input");
   for(var i=0;i<aBtn.length;i++){
    	aBtn[i].onclick = function(){
        alert(i) 
      }
   }
}

結果每次彈出的都是3,然后我們采用函數作為塊級作用域的方式在外邊增加一層,如下:

window.onload = function(){
var aBtn = document.getElementByTagName("input");
   for(var i=0;i<aBtn.length;i++){
		(function(i){
			aBtn[i].onclick = function(){
             alert(i) 
         }
		})(i)
   }
}

雖然問題解決了,但是如果用現在ES6的let,本身就是在塊級作用域中有效,更加方便;

window.onload = function(){
var aBtn = document.getElementByTagName("input");
   for(let i=0;i<aBtn.length;i++){
			aBtn[i].onclick = function(){
             alert(i) 
         }
   }
}

最后總結如下:

|:-😐:-😐:-😐:-😐

名稱 重復聲明 修改 塊級作用域
let 不能重復聲明 變量,可以修改 塊級作用域
const 不能重復聲明 常量,不可以修改 塊級作用域


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM