看看下面的代码将打印什么?
var b = 10;
(function b(){
b = 20;
console.log(b); // function b
})();
- 函数声明优于变量声明
- 在非匿名自执行的函数中,函数变量为只读状态
改造下面的代码,打印10 20
var b = 10;
(function b(){
b = 20;
console.log(b);
})();
- 函数内部添加声明, 浏览器环境
var b = 10;
(function b(){
var b = 20;
// console.log(window.b)
console.log(this.b)
console.log(b);
})();
- 传值
var b = 10;
(function b(i){
var b = 20;
console.log(i);
console.log(b);
})(b);
看看下面的代码将打印什么?
var a = 10;
(function () {
console.log(a)
a = 5
console.log(window.a)
var a = 20;
console.log(a)
})()
- 因为变量声明提升 所以函数内部,第一个a 第五行打印undefined
- 第六行 给内部变量a赋值和window无关,所以 第七行打印10
- 第八行函数内部变量赋值20 ,第九行打印20
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。