首页 > 其他分享 >2024 js预编译

2024 js预编译

时间:2024-05-07 15:14:48浏览次数:23  
标签:function console log AO js 2024 编译 123 undefined

1、一切未声明定义的变量(没有var)是全局变量属于window全局域

2、全局声明定义的变量是全局变量属于window全局域

    function test() {
      var a = b = 123

    }
    test()
    //console.log(a)//报错 a is not defined
    console.log(window.a) //undefined
    console.log(b, window.b) //123 123 b未声明直接赋值
    var aa = 1234
    console.log(aa, window.aa) //1234 1234 

3、1、创建一个AO对象 2、找形参和变量声明,将变量和形参名作为AO属性名,值 为undefined 3、将实参值和形参统一 4、在函数体里找函数声明,将函数名作为AO属性名,值为函数体本身

function fn(a) {
      console.log(a) //ƒ () { console.log(333) }
      var a = 123;
      console.log(a) //123
      function a() { }
      console.log(a) //123 
      var b = function () { console.log(333) }
      console.log(b) //ƒ () { console.log(333) }
      function d() {
      }
    }
    fn(1)
    //预编译发生在函数执行前一刻
    //预编译:1、创建一个AO对象 AO={} 2、找形参和变量声明,将变量和形参名作为AO属性名,值 为undefined  AO={a:undefined,b:undefined}3、将实参值和形参统一 AO={a:1,b:undefined} 4、在函数体里找函数声明,将函数名作为AO属性名,值为函数体本身 AO={a:function a() {},b:undefined,d:function d(){}}
    //执行函数体(函数和变量声明可以不看):1、console.log(a) 从AO找a:function a() {};   2、var a = 123; 给AO中属性a重新赋值AO={a:123,b:undefined,d:function d(){}} 3、console.log(a) 从AO找a:123; 4、console.log(a) 从AO找a:123; 5、var b = function () { } 给AO中属性b重新赋值AO={a:123,b:function () { },d:function d(){}}5、console.log(b) 从AO找b:function () { };

 

标签:function,console,log,AO,js,2024,编译,123,undefined
From: https://www.cnblogs.com/howhy/p/18177355

相关文章

  • 力扣741 2024.5.6
    原题网址:https://leetcode.cn/problems/cherry-pickup/description/?envType=daily-question&envId=2024-05-06个人难度评价:1800分析:自然的想到分两次dp,第一次dp后修改格点值,然后进行第二次dp。这种做法是错误的:第一次dp的过程中,每次选择都对第二次dp产生后效性。明显从左上到......
  • 【Python-Json】自定义类输入json序列化、json的读取与写入
    AI问答Questionjson支持numpy数组么Answer不幸的是,标准的JSON格式不直接支持NumPy数组.JSON是一种用于存储和交换数据的文本格式,它有限的数据类型只包括对象(object)、数组(array)、数字(number)、字符串(string)、布尔值(true/false)、空值(null)等.因此,无法直接将......
  • c语言编译系统工作原理
    c语言编译系统内部的工作原理程序生命周期概述一个程序的生命周期可以被分成四个部分:创建编译运行退出以一个简单的helloworld.c程序为例:#include<stdio.h>intmain(){ printf("helloworld!");return0;}编译的详细过程通过这条命令gcc-ohelloworldh......
  • ICPC2024 武汉邀请赛 题解
    2024ICPCNationalInvitationalCollegiateProgrammingContest,WuhanSiteB-CountlessMeSolution显然,只能执行\(n\)次操作是没用的条件我们只需要把和\(sum\)分给\(n\)个数,使得\(n\)个数的或和最小即可从高到低考虑每一位,假设此时枚举到第\(i\)位如果这一......
  • Burp Suite Professional 2024.4 (macOS, Linux, Windows) - Web 应用安全、测试和扫
    BurpSuiteProfessional2024.4(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:BurpSuiteProfessional2024.4(macOS,Linux,Windows)-Web应用安全、测试和扫描,查看最新版。原创......
  • Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗透测试软件
    BurpSuiteProfessional2024.4forWindowsx64-领先的Web渗透测试软件世界排名第一的Web渗透测试工具包请访问原文链接:BurpSuiteProfessional2024.4forWindowsx64-领先的Web渗透测试软件,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgBurpSuite......
  • Burp Suite Professional 2024.4 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
    BurpSuiteProfessional2024.4formacOSx64&ARM64-领先的Web渗透测试软件世界排名第一的Web渗透测试工具包请访问原文链接:BurpSuiteProfessional2024.4formacOSx64&ARM64-领先的Web渗透测试软件,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org......
  • 2024 年 5 月 6 日 阴历生日 周一 晴 常(945 字)
    正文今天真的好想把我们银行大楼整个炸了。感觉就是有些烦躁。今天骆和鱼儿都开始上班了,都对他们的工作不是很满意的样子。现在写字手有些抖,因为今晚跳舞手有些太疼了。珍的礼物到了。她说不知道要给男生选什么礼物,就送了一箱受到她哥哥好评的蒸汽眼罩。我看到这里......
  • 【题解】爬山 蓝桥杯2024省B
    题目链接:P10429[蓝桥杯2024省B]拔河[蓝桥杯2024省B]拔河题目描述小明是学校里的一名老师,他带的班级共有\(n\)名同学,第\(i\)名同学力量值为\(a_i\)。在闲暇之余,小明决定在班级里组织一场拔河比赛。为了保证比赛的双方实力尽可能相近,需要在这\(n\)名同学中挑选......
  • 《安富莱嵌入式周报》第336期:开源计算器,交流欧姆表,高性能开源BLDC控制器,Matlab2024a,操
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 本周更新一期视频教程:BSP视频教程第30期:UDSISO14229统一诊断服务CAN总线专题,常用诊断执行流程精讲,干货分享,图文并茂https://www.armbbs.cn/forum.php?mod=viewthread&tid=12......