ES6新增【Let、Const】与Var的对比区别。

ES6新增的Let、Const和Var的区别。

Let和Var区别
1.变量提升

//Var可以变量提升
console.log(a); //a=undefined
var a = 3;

//Let不可以变量提升
console.log(a); //报错:UncaughtReferenceError: a is not defined
let a = 3;

2.块级作用域

//在ES6之前,var 只有全局作用域、函数作用域
var a = 1;
{
var a = 10;
}
console.log(a);// a = 10;

//在ES6出来后,Let 不仅有全局作用域、函数作用域、还有块级作用域。
let a = 1;
{
let a = 10;
}
console.log(a);// a = 1;这里块内的a = 10对外部的全局作用域没有影响

依次类推,在for循环中的也是遵循上述规则的
var a = 5;
for(var a = 0 ;a<10;a++){
......
}
cnosole.log(a);//a=10;

var a = 5;
for(let a = 0;a<10;a++){
......
}
console.log(a);//a = 5,for循环中用let声明不影响外部作用域

3.重复声明

//在相同作用域中,用var重复声明同一变量是可以的
var a = 1;
var a = 3;//允许

//在相同作用域中,用let 重复声明同一变量是不可以的
let a = 1;
let a = 3;//不允许

4.Html中的Window对象

//在全局作用域中var声明的变量属于Window对象
var name = "ranmo";//此处可以使用Window.name

//在全局作用域中let声明的变量不属于Window对象
let name = "ranmo";//此处的变量不可以使用Window.name 

Const和Var区别

Consrt其实和Let是类似的
但是也有区别:

1.声明时赋值

//Var可以先声明,后赋值。
var a;
a = 3;
//Const必须声明时立即赋值
Const a = 3;

2.常说Const是声明常量的且不可修改,其实不够准确,
应该说:Const是这个常量包括常量值和常量对象

//对于常量值,一旦声明并赋值,就不可以修改

const PI = 3.141592653589793;
PI = 3.14;      // 会出错
PI = PI + 10;   // 也会出错



//但是对于常量对象,还是可以视情况修改的

// 您可以创建 const 对象:
const car = {type:"porsche", model:"911", color:"Black"};
// 您可以更改属性:
car.color = "White";
// 您可以添加属性:
car.owner = "Bill";

//但是你无法重新为常量对象赋值
const car = {type:"porsche", model:"911", color:"Black"};
car = {type:"Volvo", model:"XC60", color:"White"};    // ERROR


// 您可以创建常量数组:
const cars = ["Audi", "BMW", "porsche"];
// 您可以更改元素:
cars[0] = "Honda";
// 您可以添加元素:
cars.push("Volvo");

//但是你无法重新为常量数组赋值
const cars = ["Audi", "BMW", "porsche"];
cars = ["Honda", "Toyota", "Volvo"];    // ERROR

3.块级作用域
此处和Let类似,不再过多赘述,Const有块级作用域,内部不影响外部,Var没有。

4.变量提升
此处和Let类似,不再过多赘述,Const没有变量提升,Var有变量提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员不懂浪漫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值