zoukankan      html  css  js  c++  java
  • JavaScript 执行引擎小记

    看到一篇博文中写到了关于JS执行引擎的东西,特来做一下测试并记录一下JS 在代码执行过程中碰到的问题。

    1、两个函数名相同的定义式函数

            function myfunc(){
                alert("1");
            }
    
            myfunc(); //弹出 2
    
            function myfunc(){
                alert("2");
            }
    
            myfunc(); //弹出 2

    因为JS在执行代码的过程中【并非一行一行地分析和执行代码,而是一段一段分析执行的。而且,在同一段程序的分析执行中,定义式的函数语句会被提取出来优先执行。函数定义执行完之后,才会按顺序执行其他语句代码。】

    所以,按照先执行了两个 定义式函数语句 , 于是只有最后一个 myfunc() 函数是生效的,结果为: 2 、2 。

    2、顺序不同的变量式函数与定义式函数

            var myfunc = function(){
                alert("1");
            }
    
            // function myfunc(){
            //     alert("1");
            // }
    
            myfunc(); //弹出 1
    
            function myfunc(){
                alert("2");
            }
    
            myfunc(); //弹出 1

    先执行 后一个 myfunc() 函数,再按照代码顺利执行定义式 myfunc 函数,于是结果均为第一个函数的内容:1、1  。

            function myfunc(){
                alert("1");
            }
    
            myfunc(); // 1
    
            var myfunc = function(){
                alert("2"); 
            }
    
            myfunc(); // 2

    同理,这个的结果为:1、2 。

    3、变量式函数

            var myfunc = function(){
                alert("1");
            }
    
            // function myfunc(){
            //     alert("1");
            // }
    
            myfunc(); //弹出 1
    
            myfunc = function(){
                alert("2");
            }
    
            myfunc(); // 弹出 2

    按顺序执行,后一个myfunc 被重新赋值,于是结果为:1、2 。

  • 相关阅读:
    规范化注释 VVDocumenter的使用方法
    cocoaPods的安装和使用
    AFNetworking 基本使用
    关于iOS9,Xcode7以上的安全性问题
    在collection view中加入 NavigationController问题
    Network Programming(1)
    System-Level I/O (1)
    Virtual Memory(6)
    Virtual memory(5)
    1. Two Sum
  • 原文地址:https://www.cnblogs.com/stonewong/p/3491824.html
Copyright © 2011-2022 走看看