100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > JavaScript中函数作用域之精辟 函数原理的浅入深出 及程序执行预编译之通天编译???

JavaScript中函数作用域之精辟 函数原理的浅入深出 及程序执行预编译之通天编译???

时间:2023-03-27 20:37:51

相关推荐

JavaScript中函数作用域之精辟 函数原理的浅入深出 及程序执行预编译之通天编译???

1.程序执行的前一刻会先将代码预编译一遍,如果有语法错误则直接终止程序运行

//预编译之通天编译 --> 在执行的前一刻,会把文件通天扫描一遍

/**

//预编译 函数整体提升(即函数会放到程序最顶端) 变量提升 (即 var a = 123 ; 难么会将a变量提升,则值是undefined)未先声明变量就赋值的归全局所有 即Windows ,在程序执行则会创建一个Go{ } 对象 = Window{ }1.先创建一个AO对象2.再将函数形参和变量存入AO对象中,初始为undefined3.在将相应参数值从执行顺序往AO对象中传值,后覆盖前4.最后在执行程序,然后在AO对象中找

*/

// console.log(b);//undefined// var b = 234;// function test(a){//console.log(a)//fn//console.log(b)//234//var a = 123;//console.log(a)//123//function a(){}//b = 123 ;//console.log(b);//123// }// console.log(b);//234// test(1);// console.log(b);//123

2.函数作用域之精辟及函数原理的浅入深出

这里我就拿个上面那个列子稍微改动一下

console.log(b);//undefinedvar b = 234 ;function test(a){console.log(a) //fnafunction a(){a = 123456 ;function c(){c = 789;}}console.log(b) //fnbvar a = 123 ;console.log(a) ; //123b();function b(){console.log(b) ;//undefinedc = 666 ;var b = 456 ;console.log(b) ;//456}console.log(c) ;//666c = 999 ;b = 123 ;console.log(b);//123}test(1);console.log(c); //999console.log(b); //234

i.这里我直接在终端运行了,如图所示
ii.在Chrome 浏览器运行程序的示意图

这里我在给出评论区了给出了几个案例,欢迎在评论区留下你的答案哦,我不会告诉你不可以直接速知答案的哦

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。