- 函數裏面聲明的變量是局部變量,在函數外無法被訪問。 怎麼會有人出這麼簡單的面試題呢?
1.1-答案揭曉
1.2-原理解析
/*本題考點
a. 變量作用域 : 函數裏面聲明的變量是局部變量,無法在全局訪問
b. 冷門知識點 : 變量如果沒有使用var關鍵字聲明,則沒有作用域限制。 一定是全局變量(不標準語法)
*/
//聲明函數
function fn() {
/*變量連續賦值執行原理
(1) b = 1; 聲明一個全局變量b,值爲1. 因爲這裏b並沒有使用var關鍵字所以沒有作用域限制
(2) var a = b; 聲明一個局部變量a, 值爲1
*/
var a = b = 1;
};
//調用函數 :執行函數體代碼
fn();
//請說出代碼結果
console.log( b );//1
console.log( a );//程序報錯 a is not defined