天天看點

ES6中的let關鍵字和const關鍵字

ES6中的let關鍵字

    • ES6中的let
    • const關鍵字

ES6中的let

作用
與var類似 ,用于聲明一個變量
特點
在塊作用域内有效(塊作用域由 { } 包括,if語句和for語句裡面的{ }也屬于塊作用域)
不能重複聲明
不會預處理,不存在變量提升
應用
循環周遊加監聽
使用let取代var是趨勢

舉例:

let name="Tom";
let name="Jack";
           

不能重複聲明

ES6中的let關鍵字和const關鍵字

不會預處理,不存在變量提升

console.log(uname);    //undefined
	var uname="Tom";
	
	console.log(username); //報錯
	let username="jack"
           
ES6中的let關鍵字和const關鍵字

在塊作用域内有效

<button >1</button>

<button >2</button>

<button >3</button>

for (var i = 0; i < btns.length; i++) {
			var btn=btns[i];
			btn.onclick=function (){
			//點選任意按鈕都為3
			alert(i);  
			}
};

//使用塊作用域 let 
for (let i = 0; i < btns.length; i++) {
			var btn=btns[i];
			btn.onclick=function (){
			//彈出對應内容
			alert(i);  
			}
	};
           

在塊 {} 内let聲明的變量無法從塊外通路:

{ 
	  let x = 10;
	}
	console.log(x);
           
ES6中的let關鍵字和const關鍵字

通過 let 關鍵詞定義的全局變量不屬于 window 對象:

let num=30;
	console.log(window.num);  //undefined
           

const關鍵字

作用
定義一個常量
特點
const 定義的變量與 let 變量類似,但不能重新指派
應用
儲存不用改變的資料
const PI = 3.141592653589793;
		  PI = 3.14; //出錯
           
ES6中的let關鍵字和const關鍵字

const沒有定義常量值。它定義了對值的常量引用。

是以,我們不能更改常量原始值,但我們可以更改常量對象的屬性。

//可以更改常量對象的屬性
const car = {type:"porsche", model:"911", color:"Black"};
// 可以更改屬性:
car.color = "White";
// 可以添加屬性:
car.owner = "Bill";

           

在同一作用域或塊中,不允許将已有的 var 或 let 變量重新聲明或重新指派給 const

var x = 3;         // 允許
	const x = 3;       // 不允許
	{
		let x = 3;     // 允許
		const x = 3;   // 不允許
	}
           

繼續閱讀