题目描述
var a=1;
(function a(){
console.log(1,a);
a=2;
console.log(2,a);
delete a;
console.log(3,a);
})();
console.log(4,a);
求问a=2这一句到底有什么意义?以及输出的为什么是a函数本身代码?
1, a=2;是相对于第一行的var a=1;而来的,主要演示变量的作用域问题.
2, 在函数表达式(就是括号括起来的函数部分)中,a的作用就是函数本身,用于自身引用(比如递归),是一个"被污染"的变量名.下面的赋值和删除都无法对a进行操作,因为它就不是一个常规的变量.