最近在學習js,但是遇到var let const我卻有點懵了,不知道什么用對應的關鍵字才是正確的,最近研究了一下資料,現(xiàn)在總結一下和朋友們分析一下!
1.var的聲明和變量的提升
var 關鍵字在聲明變量的時候,無論在哪個地方,都會被視為函數(shù)級作用域內(nèi)頂部的位置.


在else中還可以訪問到success
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 都是塊級聲明 不會被提到函數(shù)的頂部,但是var可以
let isSuccess = false;
if(isSuccess){
const success = "成功";
}
else{
console.log(success);//訪問不到success,報錯
}
但是使用var 就可以
if(isSuccess){
var success = "成功";
}else{
console.log(success,"失敗");//可以訪問到 ?var的聲明被提到函數(shù)的頂部
}
5.const 的值是對象時可以修改對象的某一個值,但是不可以直接修改對象(const阻止的是綁定的修改,而不是綁定值得修改)
const person = {
? name:'小明'
}
// 可以修改對象的值
person.name = "小紅";
console.log(person);//輸出 "小紅"
person = {
? name:"張三"
}//報錯
6.var聲明變量,let聲明變量,const的值不能改變,但是let和const都是塊級聲明,
var在使用的時候可以被提到函數(shù)的頂部使用
但是let 和const 都是需要聲明后使用的