• 变量提升


    //基础(变量提神后 var a;  console.log(a)   a=1   声明会被提到顶部,而a=1在原地不动)
        console.log(a)  //underfind
        var a=1

        //例子1  
        //这里举了一个例子,我创建了一个函数a 判断这个b是否有值;在判断里面声明了B。运行结果是5
        //如果当前作用域中存在此变量声明,无论它在什么地方声明,引用此变量时就会在当前作用域中查找,不会去外层作用域了。
        function a() {
            //编译后 var b;
            if (!b) {
                var b = 5;  //编译后:b=5
            }
            console.log(b); // 5
        }
        a();

        //第二个例子  (因为函数内部已经存在变量b,所以不会再去外部执行)
        var b = 3;
        function a() {
            //编译后  var b;
            var b = b || 10; //编译后:b=b||10
            console.log(b)  //10
        }
        a();  //运行结果是10

        //第三个例子(JavaScript没有块作用域,只有全局作用域和函数作用域)
        function a() {
            //编译后   var b;
            var b = 3;    //编译后b=3;
            {
                var b = 5;//编译后b=5;
            }
            console.log(b);//b=5
        }
        a();  //运行结果是5,为什么呢,其实跟上面的例子相同,只不过执行顺序的原因
  • 相关阅读:
    C++笔记-智能指针 shared_ptr
    Linux笔记-性能调优工具perf
    git submodule 如何push代码
    性能测试工具gperftools使用
    Linux信号使用及自定义信号
    DNN在推荐系统中的应用参考资料
    vscode远程代码同步
    感知机模型到DNN模型
    c++笔记-libcurl多线程并发时的core【转载】
    go笔记-熔断器
  • 原文地址:https://www.cnblogs.com/yangxiaoxin/p/14554910.html
Copyright © 2020-2023  润新知