您现在的位置:首页 >> 前端 >> 内容

变量赋值问题解析

时间:2018/5/7 11:05:45 点击:

  核心提示:变量赋值问题解析(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

作者:网络 来源:hhthwx的博客