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的主要内容,如果未能解决你的问题,请参考以下文章

五个JS经典面试题

一道关于js声明变量,var和let的面试题

经典面试题,循环中使用闭包解决 var 定义函数的问题--闭包

前端面试题:JS中的let和var的区别

JS经典面试题03-引用类型连续赋值a.x = a = { n: 2 }

JS经典面试题03-引用类型连续赋值a.x = a = { n: 2 }