一道面试题的分析

Posted mengff

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一道面试题的分析相关的知识,希望对你有一定的参考价值。

题目:

console.log(a);
var a=1;
console.log(a);
function a(){console.log(2);}
console.log(a);
var a=3;
console.log(a);
function a(){console.log(4);}
console.log(a);
a();

运行结果:

技术分享图片

分析:

题目中有多个变量声明和函数声明,都会提升,而函数的优先级高于变量,两个函数声明,后面的高于前面的,所以第一个a是

f a(){console.log(4)}

var a = 1,执行到此,a被赋值为1,第二,第三个a都是1,中间的函数声明已经提升过,在此处不会再执行,没有任何影响。

var a = 3,同理,后面的第四,第五个a都是3。

由于a被赋值为3,第六个a(),已经无法执行,报错,a不是函数

以上是关于一道面试题的分析的主要内容,如果未能解决你的问题,请参考以下文章

一道百度java面试题的多种解法

一道关于二叉树的字节面试题的思考

一道小面试算法题的思路

一道微软面试题的运算过程解析

一道反序列化题的分析

阿里面试官:字符串在JVM中如何存放?90%的人就真的只回答在哪里存放