最近在学习js,但是遇到var let const我却有点懵了,不知道什么用对应的关键字才是正确的,最近研究了一下资料,现在总结一下和朋友们分析一下!
1.var的声明和变量的提升
var 关键字在声明变量的时候,无论在哪个地方,都会被视为函数级作用域内顶部的位置.
2.let关键字是能作用在块级声明中
let isSuccess = false;
if(isSuccess){
let success = "成功"
}else{
console.log(success);
}
找不到success
3.const声明 声明的变量的值不能被修改了,并且必须在初始化的时候进行赋值(不初始化就会报错)
const count = 0;(不报错,初始化,但是count的值不能再修改了)
const count;(报错,没有初始化)
4.const和let 都是块级声明 不会被提到函数的顶部,但是var可以
let isSuccess = false;
if(isSuccess){
const success = "成功";
}
else{
console.log(success);//访问不到success,报错
}
但是使用var 就可以
if(isSuccess){
var success = "成功";
}else{
console.log(success,"失败");//可以访问到 var的声明被提到函数的顶部
}
5.const 的值是对象时可以修改对象的某一个值,但是不可以直接修改对象(const阻止的是绑定的修改,而不是绑定值得修改)
const person = {
name:'小明'
}
// 可以修改对象的值
person.name = "小红";
console.log(person);//输出 "小红"
person = {
name:"张三"
}//报错
6.var声明变量,let声明变量,const的值不能改变,但是let和const都是块级声明,
var在使用的时候可以被提到函数的顶部使用
但是let 和const 都是需要声明后使用的