js 變數與常量宣告專區

2021-10-10 17:25:50 字數 2342 閱讀 8257

1.變數提公升到當前作用域最頂端。

2.僅宣告變數不賦值時,變數值初始化為undefined;因此在宣告語句前面可以列印變數的值為undefined。

3.當賦值給未宣告的變數, 則執行賦值後, 該變數會被隱式地建立為全域性變數(它將成為全域性物件的屬性)。

4.宣告多個變數,可以用英文逗號分隔,上述c由var關鍵字宣告,而變數d未宣告。

b=

6//變數未宣告,會造成全域性汙染

console.

log(a)

;//underfined

var a=10;

var b=

1,c=d=5;

console.

log(window.a)

;//10

1.let 宣告不會在全域性宣告時(在最頂部的範圍)建立window 物件的屬性。

2.let 宣告的變數只在其宣告的塊或子塊中可用,這一點,與var相似。二者之間最主要的區別在於var宣告的變數的作用域是整個封閉函式。

console.

log(a)

;//10

console.

log(aa)

;//報錯

3.在同乙個函式或塊作用域中重複宣告同乙個變數會引起syntaxerror。

if

(true

)

4.在 switch 語句中只有乙個塊,你可能因此而遇到錯誤。

switch(1

)//解決方法--乙個巢狀在 case 子句中的塊會建立乙個新的塊作用域的詞法環境,就不會產生上訴重複宣告的錯誤。

switch(1

)case1:

}

5.暫存死區:

…通過 let 宣告的變數直到它們的定義被執行時才初始化。在變數初始化前訪問該變數會導致 referenceerror。該變數處在乙個自塊頂部到初始化處理的「暫存死區」中。同樣的,typeof檢測也會報錯

function

do_something()

6.var 與 let合併的宣告方式會報syntaxerror錯誤, 因為var會將變數提公升至塊的頂部, 這會導致隱式地重複宣告變數.

//報錯

var bbb=10;

let bbb=

100;

//正確

var bbb=10;

常量命名可以大小寫,建議全部大寫

var b =5;

const

c= b;

b =50;

console.

log(c)

;//5

3.命名不會提公升,塊級範圍有效,且宣告的常量不作為全域性的屬性。

console.

log(c)

;//報錯

constc=

2;if(

true);

console.

log(c)

;//2

console.

log(window.c)

;//undefined

4.常量可以定義為物件和陣列

//屬性不會被保護

const

obj=

obj.name=

'超人強'

; console.

log(

obj);//

//陣列的方法依然可以使用,但不能賦值新的陣列

const

arr=

['1'

,'2'

,'3'];

arr.

push

("4");

arr.

splice(0

,1,'a');

console.

log(

arr)

;//["a", "2", "3", "4"]

arr=

[101

,102];

//報錯

js中變數宣告與變數提前

變數宣告 通過var表明變數的型別與名字,但並未賦值,如 var a 變數初始化 即為a賦值,如 a 1 使用變數步驟 a.宣告 b.賦值 3.呼叫 方式一 宣告和賦值不分離 var str 宣告和賦值不分離 console.log str 結果 宣告和賦值不分離 方式二 宣告和賦值分離 var s...

js變數宣告

var a 向系統要個空間 var 是個關鍵字,變數宣告只有var var a 10 這裡發生兩個過程,乙個是向系統要個空間,另乙個是把10放進房間。並且先發生第一步。var a 10 a 20 20的值把10的值覆蓋 var a,b,c,e 可以同時宣告多個變數,中間以,號 程式設計都是英文狀態 ...

js變數宣告方式

var 關鍵字 作用 宣告變數 student是變數名 自定義的,起名規範 運算符號 rhj 資料 資料代表頁面中所有的資訊 變數的作用 儲存資料 變數可以儲存js的任意資料型別 變數資料可以改變,名字不可變 乙個var宣告乙個變數,幾個var幾個變數 var student rhj 建立變數時,可...