核心提示:变量赋值问题解析(function(){var a = b = 3;})();console.log(typeof a);//undefinedconsole.log(typeof b);//numb...
变量赋值问题解析
(function(){ var a = b = 3; })(); console.log(typeof a);//undefined console.log(typeof b);//number
解析:
首先理解一句话是在立即执行函数体里面var a = b = 3;对这个进行拆解一下(赋值过程从左到右)
b = 3; var a = b;
变量b是一个全局变量
变量a在封闭的立即执行函数作用域内的局部变量
所以typeof a是undefined typeof b 是number
在非严格模式下,如果在严格模式下(use strict)下,声明var a = b = 3;将产生一个运行时的错误:
ReferenceError:b is not defined