天天看点

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;   // 不允许
	}
           

继续阅读