let和const命令
let命令
用于声明变量,类似于var,但是所声明的变量只在代码块内有效,let没有变量提升
没有变量提升:
console.log(b)//报错
let b=33;
只在代码块内有效:
if(true){
let b=23
}
console.log(b)//报错
暂时性死区
只要在块级作用域内声明let,它所声明的变量就绑定在这个区域,不受外界影响
同一个作用域中不能重复声明
let a=12
if(true){
a=13
let a
console.log("代码块里的:"+a)//报错
}
console.log("全局的:"+a)//报错
let和var也不能声明相同变量
var a=11
let a=12
console.log(a)//报错
const命令
const声明一个只读常量,一旦声明,不能改变,也没有变量提升
变量定义不能改变
const PI=3.1415
console.log(PI)
PI=3.15
console.log(PI)//报错
没有变量提升
console.log(PI)//报错
const PI=3.1415
基本类型不能改值,引用类型不能改地址
const obj={name:"张三",age:23}
obj.name="李四"
console.log(obj.name)//值可以改,输出李四
obj=[1,2,3]
console.log(obj[0])//对象不能改,报错
声明方式有几种
var let const function class import