- 函数里面声明的变量是局部变量,在函数外无法被访问。 怎么会有人出这么简单的面试题呢?
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