zoukankan      html  css  js  c++  java
  • 读书笔记-你不知道的JS上-声明提升

    变量声明提升

      Javascript代码一般情况下是由上往下执行的,但是有些情况下不成立。

        a = 2;
        //变量声明被提升在当前作用域顶部
        var a;
        console.log(a); //2
        console.log(b); //undefined
        //同样被提升
        var b;

      如果同时有函数声明与变量声明呢?

        console.log(a); //funciton a(){}
        var a;
        //函数先提升 变量后提升 因此变量的声明被忽略
        function a() {}

      两个函数声明呢?

        fn(); //输出了2!
    
        function fn() {
            console.log(1);
        }
        //后声明的函数覆盖了前面的函数
        //可以理解为 var a = 1; var a = 2
        function fn() {
            console.log(2);
        }

      另外一个案例在chrome中报错了,估计是浏览器优化过,但是不在判断语句中声明函数是一个好的习惯。

        fn(); //error
        var a = true;
        if (a) {
            function fn() {
                console.log(1);
            }
        } else {
            function fn() {
                console.log(2);
            }
        }
  • 相关阅读:
    hdu 1106 排序(排序)
    hdu 1040 As Easy As A+B(排序)
    hdu 1029 Ignatius and the Princess IV(排序)
    mysql-9索引
    mysql-8 alter命令
    mysql-7事务管理
    mysql-6正则表达式
    http协议
    9-2交互体验
    9-2专项测试下午
  • 原文地址:https://www.cnblogs.com/QH-Jimmy/p/6445140.html
Copyright © 2011-2022 走看看