var b = 10;
(function b() {
b = 20;
console.log(b) //function b
})()
var b = 10;
(function b() {
'use strict'
b = 20;
console.log(b) //Uncaught TypeError: Assignment to constant variable.
})()
原因:上面是一个立即执行的函数表达式(IIFE),而且是一个具名的函数表达式(NFE)。在ECMAScript 标准中要求 NFE 实现两个特性1.只能在函数体内访问函数名变量。2.函数名变量可以理解为常量,不可改变。
网友评论