let和const

在这里插入图片描述
在ES5.1到ES6经历了较大改动,时间也是最长的

let

<script>
{
	var a = 111
	let b = 222
	var c = 333
}

console.log(a)
console.log(b)
console.log(c)
alert(123123)
</script>

控制台结果为:

111
 Uncaught ReferenceError: b is not defined

let 是在代码块内有效,var 是在全局范围内有效

<script>
var a = 111
var a = 222
let b = 333
let b = 444
var c = 555
var c = 666

console.log(a) // 222
console.log(b) //Identifier 'b' has already been declared
console.log(c) // 666
alert(123123)
</script>

控制台结果为

Uncaught SyntaxError: Identifier 'b' has already been declared

let只能声明一次,多次声明会直接报错不会输出任何其他代码;var可多次声明

console.log(a);  //undefined
var a = "aaa";
console.log(b);  //ReferenceError: a is not defined
let b = "bbb";
console.log(c);  //undefined
var c = "ccc";

输出结果为

undefined
Uncaught ReferenceError: Cannot access 'b' before initialization

let 不存在变量提升,var 会变量提升;var js内部会声明为undefined,let不会

const

<script>
/*
const定义常量与使用let 定义的变量相似:

二者都是块级作用域
都不能和它所在作用域内的其他变量或函数拥有相同的名称
两者还有以下两点区别:

const声明的常量必须初始化,而let声明的变量不用
const定义常量的值不能通过再赋值修改,也不能再次声明。而 let 定义的变量值可以修改。
*/
const A = 123//正确,若为常量(其值不可变,若为对象,对象中的属性可变)
let b = '456'
/*
const A
A = 123
错误,必须初始化(必须赋值或对象等)
*/
//创建常量对象
const person = {name:'Mary',sex:'female',age:22,A,b}
//修改属性
person.name = 'Sara'
person.age = 23
person.A = 321
person.b = 654
//添加属性
person.height = 170
console.log(person)
console.log('a=' + A)
console.log('b=' + b)

const cars = ["Tesla", "Jeep", "BMW"]
//修改元素
cars[0] = 'Benz'
//添加元素
// 添加元素
cars.push("Audi")
//cars = ["Toyota", "Volvo", "Audi"]    // 错误,不能重新对cars赋值
console.log(cars)
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值