1 delete
delete 运算符删除对以前定义的(自己定义的)对象属性或方法的引用。不能删除原始的 ECMAScript 方法,不是开发者定义的。
//可以删除的例子 var o = new Object; o.name = "David"; alert(o.name); //输出 "David" delete o.name; alert(o.name); //输出 "undefined"
delete 运算符不能删除开发者未定义的属性和方法。下面的代码将引发错误:
//不能删除原生的ECMAScript方法 delete o.toString;
2 void
使函数没有返回值(请记住,没有返回值的函数真正返回的都是 undefined。)
该运算符通常用于避免输出不应该输出的值,例如,从 HTML 的 <a> 元素调用 JavaScript 函数时。要正确做到这一点,函数不能返回有效值,否则浏览器将清空页面,只显示函数的结果。例如:
<a href="javascript:window.open('about:blank')">Click me</a>
如果把这行代码放入 HTML 页面,点击其中的链接,即可看到屏幕上显示 "[object]"。
这是因为 window.open() 方法返回了新打开的窗口的引用。然后该对象将被转换成要显示的字符串。
要避免这种效果,可以用 void 运算符调用 window.open() 函数:
<a href="javascript:void(window.open('about:blank'))">Click me</a>