void舍弃去运算数的值,返回undefined。常用于在客户端的javascript:url中。
另一个常用用途是,生成undefined值。ECMAscript v1就已经定义了void的运算符,并且在javascirpt1.1就实现了它。而全局的undefined属性则是在ECMAscript v3才定义,并且javascript1.5才实现了它。所以,考虑兼容性问题,当要返回一个undefined值时,用void 0会比用undefined属性更有用。
<html>
<head>
<title></title>
<script></script>
</head>
<body><a href="javascript:window.open();">open new window</a>
<form></form>
</body>
</html>
<head>
<title></title>
<script></script>
</head>
<body><a href="javascript:window.open();">open new window</a>
<form></form>
</body>
</html>
运行结果是页面出现一个open new window链接。点击链接,弹出一个新的窗口,原来的链接变成了“【object】”文本,链接不复出现。
但如果把<a href="javascript:window.open();">改为<a href="javascript:void window.open();"> 点击链接后,依然弹出新的窗口,而且原来的链接不变,继续点击能继续有新的窗口弹出。
这是为什么?
入园有一段时间了,最近正式进军js,请各位前辈多多指教。