javascript中删除操作符的行为
Behavior of delete operator in javascript
似乎在JavaScript中你不能delete
函数参数,但你
delete
全局变量。为什么会有这种行为?
var y = 1;
(function (x) { return delete y; })(1); // true
(function (x) { return delete x; })(1); // false
实际上,两者都不应该返回true
,实际上它们在Firefox或Chrome中没有(在其他浏览器中未经测试)。我想您使用Firebug或其他浏览器控制台进行了测试,由于使用eval()
的控制台,这会更改内容。delete
只删除对象的属性,通常不能删除使用var
声明的变量,无论其作用域是什么。
这是Kangax关于这个主题的一篇优秀文章:http://perfectionkills.com/understanding-delete/
Edit:两者都返回正常使用的false
(即不在Firebug或浏览器控制台中使用eval()
)。参见Tim Down的答案(这应该是公认的答案)。
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 正在从页面中删除iframe
- 为什么delete操作符操作符不删除NodeList类的属性
- Javascript删除操作符
- 如何删除或隐藏过滤器操作符下拉列表
- javascript中的删除操作符
- javascript中删除操作符的行为