美文网首页
函数的声明与提升

函数的声明与提升

作者: 特立独行的兔子_web | 来源:发表于2019-06-24 17:01 被阅读0次

    JavaScript代码是从上而下执行的;那么,在前面使用了一个之后声明的变量会发生什么呢?
    我们就来研究一下JavaScript中关于变量和函数的提升:

    变量的提升:

    1. 变量的提升
      var定义:将声明的变量名提升至代码的最前面
      函数中声明的变量提升至函数内部最前面
      提前使用则打印undefined
    console.log(a) // undefind
    var a = 1;
    console.log(a) // 1
    
    1. 全局变量概念
      没有提升,提前使用则报错 未定义
      在函数中定义全局变量,(函数执行后)可在函数外使用
    console.log(a); // 报错
    a = 1;
    console.log(a); // 1
    
    1. 局部变量:在函数内部声明的变量,不可在函数外部使用
      就近原则,使用自己内部的变量
    
    function fnName() {
       var a = 5;
       var f = 6;
       e = 'e';
       console.log(a); // 5
    }
    fnName();
    console.log(e);  // 'e'
    console.log(f); // 报错
    
    1. 全局变量:在全局下声明的变量,定义后,可在任何地方使用(涉及到提升)
      特殊的全局变量: window下的属性(未使用var)

    函数的提升:

    1. 函数声明式
      function fnName() {
      console.log(1);
      }

    整个函数体会全部提升:
    函数名与变量名相同,则函数名权重会高
    同名函数取最后一个同名函数

    1. 函数表达式
      var fnName2 = function () {
      console.log(2);
      }

    按照变量的提升方式: undefined

    1. 函数重载:Js里面是没有重载
      JS中的函数没有重新载入的概念,而是以最后一个同名函数为基准;

    相关文章

      网友评论

          本文标题:函数的声明与提升

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