ES6知识点
let与const
let是更完美的var,不是全局变量,具有块级作用域,大多数情况不会发生变量提升。
const定义常量值,不能够重新赋值,如果一个值是一个对象,可以改变对象里边的属性值。
let和const都在声明所在的块级作用域内有效
let 定义的变量没有变量提升
(没有预解释)
let 定义的变量不能重复定义
(不管是函数还是let/const定义的变量)
注意一: 同一个块级作用域里面,不允许重复声明同一个变量。
{
var a = 1;
let a = 2; //报错,因为a已经用var声明过了
}
注意二: 函数内不能用let重新声明函数的参数。
function fn(str){
let str = "hello,hello" //报错,用let重新声明str参数
console.log(str)
}
fn('hello')
const 定义的是静态变量(
常量
)
const 不能修改值,必须要赋值,不能重复声明
注意一: 不能修改值
const str = "某某某"
str = "我啊" //报错,修改常量str
注意二: 不存在变量提升,必须先声明后使用。
if(1){
alert(str); //报错,使用前未声明
const str = '某某'
}
注意三: 不能重复声明
var str = '周三'
const str ='李四' //报错,声明一个已经存在的变量str
注意四: 声明后必须要赋值
const str; //报错,只声明未赋值