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

    }

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

  • 相关阅读:
    Nginx开发从入门到精通
    Nginx配置文件(nginx.conf)配置详解
    转贝叶斯推断及其互联网应用(一):定理简介
    Vim 使用入门快捷键
    从贝叶斯定理说开去
    转特征值和特征向量
    第四章 特征值与特征向量
    numpy基础入门
    python range函数与numpy arange函数
    转悠望南山 Python闲谈(二)聊聊最小二乘法以及leastsq函数
  • 原文地址:https://www.cnblogs.com/chyong168/p/2256173.html
Copyright © 2011-2022 走看看