通过JavaScript执行机制去学习闭包,执行上下文,作用域,作用域链。
函数执行中的变量和函数:
在执行过程中,若使用了未声明的变量,那么 JavaScript 执行会报错。在一个变量定义之前使用它,不会出错,但是该变量的值会为 undefined,而不是定义时的值。在一个函数定义之前使用它,不会出错,且函数能正确执行。
下面是关于同名变量和函数的两点处理原则:
如果是同名的函数,JavaScript编译阶段会选择最后声明的那个。如果变量和函数同名,那么在编译阶段,变量的声明会被忽略
变量提升:JS代码在执行过程中,JS去引擎把变量的声明部分和函数的声明部分提升到了代码开头的行为,变量被提升后,会给变量设置默认值,这个默认值就是undefined 在定义之前使用变量和函数是因为:变量和函数在执行之前都提升到了代码开头
下面代码的原因是
编译阶段:遇到一个函数,把函数体存放到变量环境中,接下来遇到同名函数,继续存放到变量环境中,但是变量环境中已经存在一个同样的函数了。那么后
版权声明:
作者:lichengxin
链接:https://www.techfm.club/p/16685.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论