首页 > Web开发 > 详细

读书笔记-你不知道的JS上-声明提升

时间:2017-02-26 19:11:00      阅读:196      评论:0      收藏:0      [点我收藏+]

变量声明提升

 

  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);
        }
    }

 

读书笔记-你不知道的JS上-声明提升

原文:http://www.cnblogs.com/QH-Jimmy/p/6445140.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!