多讀多寫多記錄,多學多練多思考。----------- Grapefruit.Banuit Gang(香柚幫)
關于聲明變量,我們有var , let , 和 const幾種方式,這次就來簡單說一下他們之間的差別所在:
var:
通過一個簡單的小例子來看一下var ,
var a = 30;
if(true){
var a = 50;
console.log(a) //50
}
console.log(a) //50
js列印一個變量時,都是從下往上找的,通過例子可以看到兩次列印都是50,說明兩次列印所找到的都是if語句中的var,這說明var 的作用域是全局的,不管在哪都可以使用的。
let:
同樣的方法可以看一下let
let a = 30;
if(true){
let a = 50;
console.log(a) //50
}
console.log(a) //30
例子可以看出,二次列印時他并沒有找到 if 語句中聲明的a變量,而是又繼續向上找的 if 外面聲明的a,由此可見let聲明的變量隻在作用域範圍内有效,出了作用域就找不到,可以看一下:隻要出了作用域就會報錯了
{
let a = 30
}
console.log(a) //報錯
const:
const其實是聲明常量所用
const x = 10;
x = 100;
console.log(x) //報錯
const聲明常量是不可以更改的,更改就會報錯
但是有一點需注意:那就是const聲明的數組是可以通過push等方法往裡面添加或删除數組的,但是不可更改類型,否則也會報錯:
const arr = [];
arr = "Green";
console.log(arr ); //報錯
arr .push("red");
arr .push("blue");
console.log(arr ); //正常列印
好了,就是這些了,希望能幫助一些朋友!!!