zoukankan      html  css  js  c++  java
  • 前端面试题总结一(js变量和函数声明提前相关)

    好久没有更新博客了,^_^写写博客吧!下面是我总结的一些面试题,希望对大家有所帮助

    (1)题目如下:

      alert(a)
      var a=1
      function a(){
        alert(a)
     }

    好多人肯定会觉得输出的结果是undefined,那你就错了,因为function也要声明提前的所以输出的结果应该是::

    ƒ a(){
    alert(a)
    }

    更有意思的来了如果我把上面的题改为如下:

    alert(a)
    function a(){
     alert(a)
    }
    var a=1

    输出的结果应该是::

    ƒ a(){
    alert(a)
    }

    注意:***函数提升优先级比变量提升要高,且不会被变量声明覆盖,但是会被变量赋值覆盖***

    如果下面

    alert(a)
    function a(){
     alert(a)
    }
    var a=1
    alert(a)

    这个的输出结果为::

    第一次输出::
    ƒ a(){
    alert(a)
    }

    第二次输出::
    1

    (2)题目如下:

    var foo = "function";

    var foo;//它只是定义,全不会覆盖变量

    alert(foo);//所以返回 function
     
    (3)题目如下:
    var getName = function(){
        console.log(2);
    }
    function getName (){
        console.log(1);
    }
    getName();
     
    输出结果:
    2
     
    如果我稍作改动
    foo(); 
    var foo;
    function foo(){
     console.log(1);
    }
    foo=function(){
     console.log(2);
    }
    其输出的结果::
    1
    处理过程为:
    function foo(){
    console.log(1);
    }
    var foo; //并不执行,重复的声明
    foo();
    foo=function(){
    console.log(2);
    }

    ***函数会首先被提升,然后才是变量***
  • 相关阅读:
    JSON的使用总结
    pc端分页插件的使用
    简单修改选择文件样式
    H5中的本地存储
    H5中的 meta 标签及 移动页面单位
    1001. A+B Format (20)
    查看mysql的注册表路径
    win10 64位安装mysql
    [POLITICS] S Korea lawmakers vote to impeach leader
    5-17 Hashing (25分)
  • 原文地址:https://www.cnblogs.com/hongsusu/p/9055513.html
Copyright © 2011-2022 走看看