js中var、let、const的使用
這三個使用起來是非常簡單的,其實並沒有那麼複雜。
相同點:都不能跨函數訪問。
啥意思?
<script>
(function Test(){
var a=1;
let b=2;
const c=3;
console.log(a);//1
console.log(b);//2
console.log(c);//3
})();//立即執行函數
console.log(a);//報錯,未定義該變量
console.log(b);//報錯,未定義該變量
console.log(c);//報錯,未定義該變量
</script>
不同點如下:
var 全局變量
聲明之後的區域都有效。程序從上到下運行的。
啥意思?
<script>
var a=1;
console.log(a);//1
(function Test(){
a=2;
console.log(a);//2
})();//立即執行函數
console.log(a);//2
</script>
let 塊級變量
就是在 {} 裏面有效
<script>
for(let a=0; a<5; a++)
{
console.log(a);//依次循環打出0 1 2 3 4
}
console.log(a);//會報錯,因爲a已經銷燬了,相當於未定義該變量
</script>
const 塊級常量
const是塊級常量,定義後無法更改它的值。
如果定義的是一個對象的話,可以更改該對象裏面具體的某個值。(const定義一個對象,主要存儲的是對象的地址)
<script>
const person = {
name : 'ywj'
}
person.name = 'test'; //可以更改的,person這個對象的地址未更改
console.log(person.name);
</script>