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 。

  • 相关阅读:
    Xamarin图表开发基础教程(4)OxyPlot框架
    搜索页面scroll下拉时候进行刷新,显示更多搜索值
    搜索功能
    父组件操作子组件中的值,将父组件的值设置给子组件
    扩展music-list.vue让列表前三名显示🏆奖杯
    Scroll的使用
    Vue-lazyload的使用
    获取歌曲的播放时长
    audio音乐播放
    歌曲播放页面的数据vuex管理
  • 原文地址:https://www.cnblogs.com/stonewong/p/3491824.html
Copyright © 2011-2022 走看看