启用"use strict"后,为什么我可以在使用prompt()时不使用let来分配变量

bst*_*h24 3 javascript use-strict

"use strict";在剧本的顶部写道.

我不能写,num = 5;因为我得到了ReferenceError: Can't find variable: num.

为了解决这个问题,我可以写let num = 5;.

使用那个逻辑,为什么我被允许写name = prompt("What is your name?");

我不应该写let name = prompt("What is your name?")吗?

Noa*_*tas 5

假设您在浏览器中运行此操作,由于该window.name属性,您会看到此行为.您的第二个示例是存储prompt此属性中返回的值.

如果window有一个内置num属性,你的第一个例子也可以.

当然,在实际代码中,您需要创建一个变量来存储prompt值而不是clobbering window.name.