阿里巴巴Web前端面试的一道JS题目,求解答!!!

题目大概是这样的:

function outer(){
    return inner;
    var inner = "a";
    function inner(){};
    inner = 9;
}
alert(typeof inner());

当时的回答是结果是——function (回来测试结果也是一样)

本来的想法是,inner 在outer 执行的过程中,下面有一个函数声明,而函数声明会提升,也就是 JS 解析器会率先读取函数声明,如果不是声明函数而是定义一个变量,那结果就会是 undefined。

问题是,经过面试官的百般拷问,我就犹豫了。虽然结果是正确的,但是不知道自己这样理解对不对,问面试官,结果是无可奉告……虽然已经被刷,但还是在纠结这个问题。

javascript 是解释性语言,也就是一行行解释执行,那为什么会先读取函数声明?是否在javascript中有存在预编译呢?

求解答!!!

问题是,经过面试官的百般拷问,我就犹豫了。

阿里巴巴Web前端面试的一道JS题目,求解答!!!,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。