ES6中var、let、const三者的区别

本文介绍了ES6中的块级作用域,详细阐述了var、let和const定义变量的不同之处。var变量可以跨块访问但不能跨函数,let和const则限制在块作用域内,let不允许跨块和函数访问,const同样不能跨块和函数访问,且const定义的常量必须初始化且不可修改。然而,const对象的属性值可以改变,因为对象本身是引用类型,const只保证对象引用不变,不阻止属性修改。
摘要由CSDN通过智能技术生成

1、块级区域
1.1 ES6中新增了块级作用域,块作用域由{}包括。
if和for语句中的{}也属于块作用域。

2、var、let、const的区别
2.1 var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
2.2 let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
2.3 const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。(常量声明的变量名都是大写提高可读性)

//此处表明var可以跨块访问,而let不可以
{
var value=10;
let count=20;
}
console.log(value);//10
console.log(count);//报错 not defined

//此处表明var和let都不能跨函数访问
// 函数作用域
(function A() {
var d = 5;
let e = 6;
const f = 7;
console.log(d); // 5
console.log(e); // 6
console.log(f); // 7
})();
// console.log(d); // 报错
// console.log(e); // 报错
// console.log(f); // 报错

const用来声明变量,一旦被声明其值就不能改变
const声明的常量也只在块级作用域内有效
在同一作用域,const不能重复声明同一常量

const定义的变量属性是否可以改变?

答案是可以

const person = {
name : ‘jiuke’,
sex : ‘男’
}
person.name = ‘test’
console.log(person.name); //test

因为对象是引用类型的,person中保存的仅是对象的指针,这就意味着,const仅保证指针不发生改变,修改对象的属性不会改变对象的指针,所以是被允许的。也就是说const定义的引用类型只要指针不发生改变,其他的不论如何改变都是允许的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值