[js]js中4种无节操的预解释情况

Posted 毛台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[js]js中4种无节操的预解释情况相关的知识,希望对你有一定的参考价值。

js中4种无节操的预解释情况

- 1. if语句即使条件不成立,条件里的表达式也会进行预解释.
- 2. 匿名函数的预解释:  只对等号左边与解释
- 3. 自执行函数的预解释: 不进行预就解释, 执行的时候,定义+执行
- 4. return下面的语句也会进行预解释,但是return后面的语句不进行预解释
<script>
    var p1 = {name: "maotai"};
    console.log(age); //1.即使条件不成立,条件里的表达式也会进行预解释.
    if ("age" in p1) { // 是否是对象的一个属性
        var age = 22;
        console.log("name in p1")
    }
    console.log("--------------------------------");

    // 2.匿名函数的预解释:  只对等号左边与解释
    fn();

    function fn() {
        console.log("fn is running!");
    }

    fn();
    console.log("--------------------------------");

    // 等号右边的不会进行预解释.
    //    fn2(); //报错
    var fn2 = function () {
        var favor = "orange";
        console.log("fn2 is running!")
    };
    fn2();

    // 3. 自执行函数的预解释: 不进行预就解释, 执行的时候,定义+执行
    ~function (num) {
        console.log("I am zi zhi xing fun " + num);
    }(100);

    // 4, return下面的语句也会进行预解释,但是return后面的语句不进行预解释
    console.log("--------------------------------");

    function fn3() {
        console.log(num3);
        return function () { }; // 这个function不会进行与解释
        var num3 = 330;         // 这里会进行预解释
    }
    fn3();
</script>

以上是关于[js]js中4种无节操的预解释情况的主要内容,如果未能解决你的问题,请参考以下文章

js中的预解释

JS中的预解释

js的预编译

js练习题

window下是否存在number,毫无节操的词法分析[js面试题]

window下是否存在number,毫无节操的词法分析[js面试题]