我们知道声明变量是会提升的:
var a = 1;//上面一行相当于下面这样: var a; a = 1;
同时,函数声明也是会被提升的:
foo();function foo(){};//上面两行相当于下面这样:
var foo;
foo = function (){};
foo()那么,变量和函数声明都有时,谁会提升到更上面呢?怎么排序呢?比如下面这样:
var a = 1;
foo();function foo(){};是这样吗?
var a;var foo;
a = 1;
foo = function(){};
foo();因为在《你不知道的JAVASCRIPT》看到这句话,有点困惑:
函数声明和变量声明都会被提升。但是一个值得注意的细节是,函数会首先被提升,然后才是变量。函数声明会被提升到普通变量之前。
所以说会是这样排序吗:
var foo;
foo = function(){};var a;
a = 1;
foo();求解排序规则,谢谢!
子衿沉夜
相关分类