猿问

为什么将函数c赋值给变量b,在函数体里面,给c赋值,为什么会失败

为什么将函数c赋值给变量b,在函数体里面,给c赋值,为什么会失败?也就是这代码执行时为什么c打印出来的不是3


var  b = function c () {

    a=1, b=2, c=3;

    console.log(a);

    console.log(b);

    console.log(c);

}

b();


慕后森
浏览 754回答 2
2回答

HUH函数

可以看下这篇文章,大概意思是命名函数表达式NFE的名字是存在一个辅助特殊对象(auxiliary special object)中的,而且是只读的,所以在非严格模式下修改会静默失败,如果这段函数内部在严格模式下运行会报错Uncaught TypeError: Assignment to constant variable.,其他答案中说的c被定义成全局是不对的,可以试一下把console.log(c)改成console.log(window.c)也是undefined。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答