美文网首页
一道坑爹的面试题

一道坑爹的面试题

作者: 酪蕊璺 | 来源:发表于2018-04-04 16:49 被阅读0次

网上看到一道坑爹的面试题,代码如下:
(js真是处处是坑呀。。。(┬_┬))

alert(a)
a();
var a=3;
function a(){
    alert(10)
}   
alert(a)
a=6;
a();

输出结果(chrome下):

function a(){
    alert(10)
}  

10

3

console Error:
Uncaught TypeError: a is not a function

作为前端小白的我,刚开始也是懵逼的呀,虽然我还知道变量提升。

网上的解释:

  1. 同一个标识符的情况下,变量声明与函数声明都会提升
  2. 函数声明会覆盖变量声明,但不会覆盖变量赋值

所以以上代码等价于:

var a;
function a(){
    alert(10)
}   
alert(a)  //function a(){alert(10)}   
a();      //10
a=3;
alert(a)  //3
a=6;
a();  //Uncaught TypeError: a is not a function

ps:没有去其他浏览器下测试,有兴趣的可以去试一下结果是否一样

相关文章

网友评论

      本文标题:一道坑爹的面试题

      本文链接:https://www.haomeiwen.com/subject/zltlhftx.html