为什么在创建函数时出现错误,而在创建变量时却没有?

Sla*_*bek 0 javascript variables function strict referenceerror

你能解释一下为什么下面的代码给我一个错误(仅限严格模式)?

'use strict';


name = 'Adam';
console.log(name);

doSomething = function() {};
Run Code Online (Sandbox Code Playgroud)

安慰:

亚当

参考错误:doSomething 未定义

Que*_*tin 5

严格模式禁止隐式全局变量。

变量必须显式声明(与constletvar)。

您可以通过将属性分配给全局对象(window在浏览器中)来创建显式全局对象……但不要这样做:全局变量是解决代码不同部分之间冲突的好方法。(例如在浏览器内置name变量和您自己的name变量之间)。