JavaScirpt的预处理
#JavaScript #面试题
函数的预处理和全局的预处理大致一致,区别在于函数有参数。(变量提升)
1 |
|
当函数运行到“test(4,5)”时进入到test函数,此时创建再增加一个新的执行环境,进行预处理得到LE:
1 |
|
总结:
当函数内定义的值==var a==和函数的参数列表中==a==有同名的话,变量提升(函数预处理)后,会将参数的实参赋值到==形参a==中,若与非匿名自执行函数同名,==var a==会覆盖,但是==a==不能覆盖,且不能修改,因为这个变量是只读的状态。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!