我们知道声明变量是会提升的:
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();
求解排序规则,谢谢!
子衿沉夜
相关分类