美文网首页
变量提升和函数声明提升

变量提升和函数声明提升

作者: Hunter_Gu | 来源:发表于2016-12-20 15:19 被阅读33次

JS引擎的工作方式:先解析代码,获取所有变量的声明。

  • 变量提升
    var a = 1;
    var b = 2;
    var c = 3;

等价于

    var a;
    var b;
    var c;
    a = 1;
    b = 2;
    c = 3;

所以

    console.log(a);//undefined 不会报错
    console.log(c);// c is not defined 报错
    var a = 1;
    var b = 2;

等加于:

    var a;
    var b;
    console.log(a);//undefined 不会报错
    console.log(c);// c is not defined 报错
    a = 1;
    b = 2;
  • 函数声明提升
  • 当函数通过函数声明进行定义时,会有声明提升
   printNum();//有效,控制台打印了1
   function printNum(){
       console.log('1');
   }
  • 但是,通过其他方式定义的函数没有声明提升

1.构造函数

   printNum();//报错 printNum is not a function(...)
   var printNum = new Function("console.log('1');");

2.函数表达式

   printNum();//报错 printNum is not a function(...)
   var printNum = function(){
       console.log(1);
   };

相关文章

  • 引用类型

    变量提升和函数声明提升   函数声明提升就是把函数声明提升到函数声明所在作用域中(或者说一个函数体内)的顶端,变量...

  • JS中的提升

    JS中包含两种提升,变量提升和函数提升。 变量提升 变量提升只能是var或者function声明的变量或者函数,l...

  • js的提升

    JavaScript 会将函数声明和变量声明提升到当前作用域的顶部。变量赋值不会提升。在脚本的顶部声明函数和变量,...

  • 变量提升

    变量提升 Hoisting 变量和函数的声明会在编译时被提升到作用域的顶部 提升的是声明,函数会连带函数体提升 i...

  • 执行上下文和执行上下文栈

    一、变量提升和函数提升 首先回顾一下什么是变量提升。 变量声明提升,通过var定义(声明)的变量,在定义语句之前就...

  • 变量函数提升

    变量被提升 因为变量声明和函数声明会被解释为: 函数被提升 声明式函数会自动将声明放在前面并且执行赋值过程,而变量...

  • js原生

    三种定义函数的方式 变量声明提升 在函数体内部,声明变量,会把该声明提升到函数体的最顶端。 只提升变量声明,不赋值...

  • runoob js第六天

    JavaScript 变量提升 变量提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。变量可...

  • JS笔记 命名问题

    JS中函数和变量重名时,后声明的覆盖先声明的,后赋值的覆盖先赋值的。 变量提升和函数提升时,变量的声明是在函数的声...

  • 变量提升和函数声明提升

    JS引擎的工作方式:先解析代码,获取所有变量的声明。 变量提升 等价于 所以 等加于: 函数声明提升 当函数通过函...

网友评论

      本文标题:变量提升和函数声明提升

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