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

一道坑爹的面试题

作者: 酪蕊璺 | 来源:发表于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