JS经典面试题05-变量连续声明var a = b = 1
Posted 坤小
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS经典面试题05-变量连续声明var a = b = 1相关的知识,希望对你有一定的参考价值。
- 函数里面声明的变量是局部变量,在函数外无法被访问。 怎么会有人出这么简单的面试题呢?
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
以上是关于JS经典面试题05-变量连续声明var a = b = 1的主要内容,如果未能解决你的问题,请参考以下文章
经典面试题,循环中使用闭包解决 var 定义函数的问题--闭包