1.本应匿名的函数如果设置了函数名如AAA,在外面无法调用AAA(),但是函数里面是可以使用的
2.而且类似于创建常量一样,这个名字存储的值不能再被修改(非严格模式下不报错,但是不会有任何效果, 严格模式下直接报错,可以把AAA理解为是用const创建出来的,A = 1000不能做到)
var b = 10; //注意这里,必须加;
(function b(){ //是不是私有变量:1.没有形参 2.没有var
b = 20 //看b是不是属于匿名函数的名字
console.log(b) //函数b
})()
console.log(b) //10
// 1.var声明它
var b = 10;
(function b() {
var b = 20
console.log(b) //20 里面的b需要是私有变量,不能是全局变量(声明它或者改为形参)
})()
console.log(b) //10
// 2.形参
var b = 10;
(function b(b) {
b = 20
console.log(b) //20
})()
console.log(b) //10
var b = 10;
(function () { //去掉函数名b
b = 20 //b就是全局变量
console.log(b) //20
})()
console.log(b) //20