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

标签 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?") 吗?

最佳答案

假设您在浏览器中运行它,您看到此行为是因为 window.name属性(property)。您的第二个示例是将 prompt 返回的值存储在此属性中。

如果窗口具有内置的 num 属性,您的第一个示例也可以正常工作。

当然,在实际代码中,您希望创建一个变量来存储 prompt 值,而不是破坏 window.name

关于javascript - 启用 "use strict"后,为什么我可以在使用 prompt() 时不使用 let 来分配变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51794841/

相关文章:

javascript - Ubuntu 上的 WebStorm 问题

jquery - 使用严格导致未定义的函数

javascript - 在 JS 数组中使用命名键

javascript - 将自定义服务注入(inject) Angular Controller

javascript - 在 redux 中使用 thunk 中间件比使用常规函数作为异步操作创建者有什么好处?

javascript - 专注于输入时在 iOS 中忽略固定/绝对定位

javascript - "use strict"在程序中间

javascript - 更新firestore中的文档会导致无限循环

javascript - 使用 "using strict"作为 "use strong"的备份

javascript - 如何删除babel添加的全局 "use strict"