JS提前声明和定义方式

来源:JS的函数定义方式以及对声明的提前

 

以下代码,声明语句会被提前到当前作用域(全局作用域和函数作用域)的顶部。但赋值语句不会提前,依然留在原地

var x = function(){};
var y = 123;

而函数的声明也会提前到作用域的顶部

function f(){}

 

对以上的总结就是:只要是声明(变量声明或函数声明)就会被提前,但赋值语句不会被提前

 

以下代码中的y所在的环境,是全局环境,而不是当前 new 所在的环境

new Function('return y');

 

posted @ 2017-09-15 21:24  HelloHello233  阅读(275)  评论(0编辑  收藏  举报