javascript - 为什么我可以删除一个声明为 a = 1 的变量而不是一个在 javascript 中声明为 var b = 1 的变量

标签 javascript

<分区>

假设我们在全局范围内:

当我在 JS 中声明一个变量时:

a = 1

我知道这不是正确的方法(但这不是问题所在)。 我可以使用:

delete a (> returns true)

但是当我声明时:

var b = 1

我不能使用:

delete b (> returns false)

谁能解释这种行为?

最佳答案

delete is only effective on an object's properties. It has no effect on variable or function names.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete

a 成为/最终被解释为 window.a,而 b 显然是指 局部变量 .

关于javascript - 为什么我可以删除一个声明为 a = 1 的变量而不是一个在 javascript 中声明为 var b = 1 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34896169/

相关文章:

javascript - 如何为 jquery-localize 动态加载数据

javascript - PHP-PDO : How would I wrap some values return into javascript to be rendered on a view?

javascript - 监听mapbox addLayer 和removeLayer

javascript - jQuery 代码评论

javascript - 将组件传递给 Angularjs 对话框模板时删除额外的 md-dialog 包装器

javascript - 'beforeunload' Chrome 问题

javascript - 如何在 .net 后端到 js 前端的 2 个大嵌套 json 之间进行 JSON 差异/修补?

javascript - 如何在嵌套组件中使用 "groups"访问 "class-transformer"

javascript - 使用 PHP 记录集数据的 Bootstrap 3 Modal

javascript - 从 JavaScript 中的文本中提取 <a>