js函数、变量提升的顺序问题
很早前就知道JavaScript语言有变量提升的特性,也有函数提升的特性(英文Hoisting
),恰好今日的一个电话面试,面试官问道这个问题,暗自窃喜,然而没想到的是,他问我如果两者同时存在的时候,是先提升函数还是变量呢?一下就懵逼了,之前真没考虑过这个问题啊。。。
下来后,立即做了一个实验:
|
|
或者12345console.log(foo);function foo(){ //balabala...}var foo = 'Hello World!';
结果打印出的都是function;
结论
:由此可见,js中的函数或者变量提升特性,是先提升函数,再提升变量,(都是基础不扎实的锅啊😔)