[妙味JS基础]第六课:作用域、JS预解析机制
知识点总结
- 浏览器的解析方法
script 全局变量,全局函数 自上而下 函数 由里到外 "JS的解析器": 1)“找一些东西”:var function 参数 var a=未定义 =>所有的变量,在预解析时,赋一个值:未定义 fn1 = function fn1(){alert(2)} =>所有的函数,在预解析时,是整个函数块 function fn1(n1) {} =>这里的参数n1,相当于var n1 ,因此也是未定义 在预解析时,遇到重名的:只留一个,var和函数重名,只留函数,函数重名,只留后面的一个,例如: var a function a(){alert(1);} var a function a(){alert(2);} =>预解析,a = function a(){alert(2);} var a 2)“逐行解读代码” 表达式:= + - * / % ++ -- ! 参数 ... 表达式可以修改预解析的值!
- 作用域的注意事项
FF 不能对if ,for里面的函数进行预解析,例如: alert(fn1); if (true) { function fn1(){ alert(123); } } FF => fn1 is not defined 其他浏览器 => function fn1(){ alert(123); } 尽量避免在for、if中定义变量或者函数。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。