zoukankan      html  css  js  c++  java
  • 求解:js函数在预编译期间的谜 简单

    先看这么一句话:

      “在JS预编译期,仅仅是对函数的名称、函数内部的各种标识符进行检索,并建立索引”


    根据上述,我们看看示例:

    示例1: 

    function test6_2() {

        var a = 123;

        (function() {

            alert(a);  //undefined  预编译时被a标识符替换,故undefined

            var a = 1.11111;

            alert(a); //1.11111

        })();

    }

    示例2:

    function test6_3() {

        var a = 123;

        (function() {

            // function a() {alert("function")}   预编译时,被函数a替换,疑问:在函数a后面继续声明有a变量,不过这个变量似乎优先级不够?

            alert(a); 

            var a = "abc";

            function a() {alert("function")}

            var a = 1.11111;

            alert(a); // 1.11111

        })();

    }

    示例3:

    function test6_4() {

         // function a() {alert(1)}   预编译时,被函数f替换,疑问:在函数f后面继续声明有标识符f,不过这个变量似乎优先级不够?

        alert(f);

        function f() {alert(1)}

        var f = function() {alert(2)};

    }

    示例4:

    function test6() {

        function f() {

            alert(1);

        }

        f();    //4

        var f = new Function("alert(2)");

        f();       //2

        var f = function() {alert(3)};

        f();          //3

        function f() {

            alert(4);

        }

        f();             //3

        var f = new Function("alert(5)");

        f();                //5

        var f = function() {alert(6)};

        f();                   //6

    }

    备注:继续学习,后期来解答这个疑问!

  • 相关阅读:
    UPS FAQ-不错的UPS资料
    HPL.dat FAQ
    Fortran77计算某段代码的CPU运行时间
    存储知识 什么是LUN?LUN有什么用?对理解存储设备很有好处
    HPL.dat Tune
    UPS-瓦特(W)和伏安(VA):易混淆的两个概念
    mysql sql 索引相关用法,加快查询速度
    mysql 数据库分类设计方法与PHP结合
    c# SQLServer 数据库连接类
    .net上传图片生成大小缩略图
  • 原文地址:https://www.cnblogs.com/chyong168/p/2256173.html
Copyright © 2011-2022 走看看