剛剛玩了一把遊戲,久久不能平復,寫一篇睡前博客平復一下。
從今天開始整理關於Js的相關知識,
首先如何聲明一個變量
var name="輔助零槓十八";
聲明一個變量就是如此的簡單,講完了。
當然這也算聲明一個變量了,但是nononon,我們還要知道的更多。
js中的三種聲明方式:
var
let
const
var可以聲明全局變量也可以聲明局部變量,let,聲明塊作用域的變量,const,常量。
首先提一下var變量的特點之一:
變量提升
何爲變量提升,舉個例子
console.log(a); 未聲明之前
var a;
console.log(a); 聲明之後
簡單來說就是var可以先使用後聲明,js代碼第一次預編譯時會將讀到的如var的全局變量先進性緩存,此即爲變量提升,而let和const則都不可以,必須是先聲明後使用。
並且const用於聲明一個或多個常量,聲明時必須進行初始化,且初始化後值不可再修改
// 錯誤寫法
const PI;
PI = 3.14159265359;
// 正確寫法
const PI = 3.14159265359;
var和let的循環作用域問題
var i = 5;
for (var i = 0; i < 10; i++) {
// 一些代碼...
}
// 這裏輸出 i 爲 10
let i = 5;
for (let i = 0; i < 10; i++) {
// 一些代碼...
}
// 這裏輸出 i 爲 5
第一個比較好理解,var是全局變量。最後經過循環輸出10
第二個代碼let i=5是for外的一個局部變量,for內又一個局部變量,最後經過累加到10,但是最後在for外輸出的還是外部i,故此處爲5.