JavaScript中var let const區別 以及作用域引用類型
var let const
let 聲明變量
var 聲明變量
const 聲明常量(不會發生變化的量) ,
var
缺點:1 變量提升:變量聲明的時候提升到最初始的的位置
聲明變量可以在使用之後,不符合預期
2 可以重複聲明,引起歧義。
3 function 其實也是聲明變量
<script>
var a;
var a;
var a;
//連續定義三個 a,系統不會報錯而將var換爲let的時候系統會出現報錯
</script>
let
let 聲明變量
優點
1 聲明前不能使用,保證代碼的執行順序
2 在let之前又暫時性的死區,在後面
3 不允許重複聲明,一旦聲明就會報錯
<script>
//暫時性的死區
let a//在這之前的a操作全部會報錯。
</script>
const
const 聲明常量(不會發生變化的量)
1 注意常量名要大寫,不允許修改
2一定要在聲明變量的時候設置初始值。
// 作用域:變量的生效範圍,有限的/
作用域:
全局作用域
直接寫在最外面的的變量擁有的作用域是全局作用域
任何地方可以訪問的,那就是全局變量
函數作用域
在函數內部聲明的變量,他會在函數內部生效
塊級作用域
變量訪問的是從內到外,內部沒有才會去外面
<script>
let a=3;//全局變量
function foo(){
let a=2;
console.log(a);//輸出2
}
console.log(a);這裏輸出的是3.
////////////////////////////
let a=3;
function foo(){
a=2;//去除let後,表示是對全局變量a進行修改
console.log(a);
}
console.log(a);//這裏輸出的是2
////////
let a=3;
function foo(a){
a=2;
console.log(a);////輸出2
}
console.log(a);//這裏輸出的是3
</script>