變數相關知識整理

2021-10-03 02:03:29 字數 2361 閱讀 8976

何為變數? 簡而言之就是儲存資料值的容器,js所有變數都擁有唯一識別符號,即我們通常說的變數名。

關於變數,我們通常有兩個操作,宣告和賦值

函式作用域

塊級作用域

當某個變數被訪問時通常會經過以下步驟:

判斷當前位置是否存在區域性作用域(即函式作用域和塊級作用域);

存在區域性作用域,則判斷該區域性作用域內是否存在該變數名的變數;

若無,尋找上一級作用域,重複第二個步驟,直到全域性作用域;

若全域性作用域也找不到這個變數,這個變數就是未定義的 undefined。

如果變數宣告在函式裡面,則將變數宣告提公升到函式的開頭

如果變數宣告是乙個全域性變數,則將變數宣告提公升到全域性作用域的開頭

var b;

//宣告變數b

var a=1;

let b=2;

const c=3;

console.

log(a,b,c)

;// 1,2,3

console.

log(window.a)

;//1

console.

log(window.b)

;//undefined

console.

log(window.c)

;//undefined

if(1

) console.

log(a)

;// 1

console.

log(b)

;// b is not defined

console.

log(c)

;// c is not defined

let 和 const 會在 {} 內形成塊級作用域,成為其內部的區域性變數,因此在{}外無法訪問。

console.

log(a)

; console.

log(b)

; console.

log(c)

;var a=1;

let b=2;

const c=3;

console.

log(a)

;

var a;

//變數提公升

console.

log(a)

;//undefined,已經宣告,還未賦值;

console.

log(b)

;//b is not defined

console.

log(c)

;//c is not defined

a=1;

let b=2;

const c=3;

console.

log(a)

;// 1

var a =1;

let b =2;

const c =3;

console.

log(a)

;// 1

console.

log(b)

;// 2

console.

log(c)

;//3

a =4;

b =5;

c =6;

// 報錯:assignment to constant variable. 常量不可以再次賦值

console.

log(a)

;//4

console.

log(b)

;//5

var a=1;

let b=2;

const c=3;

console.

log(a)

;//1

console.

log(b)

;//2

console.

log(c)

;//3

var a=4;

console.

log(a)

;//4

// let b=5; //報錯 : identifier 'b' has already been declared

const c=6;

//報錯 : identifier 'c' has already been declared

var a=1;

if(1)

XMPP 相關知識整理

xmpp the extensible messaging and presence protocol 中文全稱 可擴充套件通訊和表示協議 簡介 可擴充套件通訊和表示協議 xmpp 可用於服務類實時通訊 表示和需求響應服務中的xml資料元流式傳輸。xmpp以jabber協議為基礎,而jabber是即...

patch,diff相關知識整理

diff 命令列選項 原始檔案 新檔案 幾個常用的選項說明 diff的內容預設輸出到stdout上,所以需要把它重定向到乙個檔案中才能儲存,如下 diff un test0 test1 test1.patch如果是資料夾就加個r 常用 rnu就行 patch 命令列選項 待打補丁的檔案或文件 補丁檔...

mysql相關知識整理

mysql儲存引擎 分為innodb和myisam innodb 支援事物 外健 行級鎖 事物特性 原子性,一致性,隔離性,永續性 事物的隔離級別 未提交讀,已提交讀,可重複讀,髒讀 序列化 myisam 表級鎖 儲存最大行數 在建立表選擇儲存引擎讀多寫少偏向於使用myisam 寫操作頻繁選擇用in...