为什么我在创建函数时会出错,而在创建变量时却不会?

Why do I get an error when create a function but not when a variable?

能否请您解释一下为什么以下代码会给我一个错误(仅在严格模式下)?

'use strict';


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

doSomething = function() {};

控制台:

亚当

ReferenceError: doSomething 未定义

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

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

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