理解,JS全局预处理与执行
2018-03-08 17:23
162 查看
1.使用var定义的变量被加到预处理的词法环境中:
function f() { // 函数执行时会首先对a进行预处理 var a; console.log(a); //a为undefined console.log(b); //报错 b is not defined var a=5; //为a赋值 a=5 b=6; } f();为什么输出结果a是undefined,b会报错?(1)变量a被添加到预处理的词法环境中后,变量a的声明会被置顶;
(2)变量b没有声明,所以报错;
2.执行函数时,函数名与变量名冲突:
var b=10; function b() { console.log(b); } b(); //报错,b is not a function(1)函数的声明和变量的声明都会被提前,但是函数的声明先于变量的声明;
(2)函数声明之后,变量b不会被重新声明;
相关文章推荐
- JS的解析与执行——全局预处理命名冲突解决策略与执行
- Js的全局预处理、解析与执行
- JS的解析与执行——全局预处理
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- 深刻理解js执行原理和闭包
- js中(function(){…})()立即执行函数写法理解
- JS概念理解(三)——执行上下文、作用域与自由变量
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- [js]js代码执行顺序/全局&私有变量/作用域链/闭包
- 转载:js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- js全局变量的理解
- js中(function(){…})()立即执行函数写法理解
- 理解js作用域原型链和执行上下文
- 我所理解的JS执行环境和作用域链
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解