<分区>
假设我们在全局范围内:
当我在 JS 中声明一个变量时:
a = 1
我知道这不是正确的方法(但这不是问题所在)。 我可以使用:
delete a (> returns true)
但是当我声明时:
var b = 1
我不能使用:
delete b (> returns false)
谁能解释这种行为?
标签 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 - 将组件传递给 Angularjs 对话框模板时删除额外的 md-dialog 包装器
javascript - 'beforeunload' Chrome 问题
javascript - 如何在 .net 后端到 js 前端的 2 个大嵌套 json 之间进行 JSON 差异/修补?
javascript - 如何在嵌套组件中使用 "groups"访问 "class-transformer"