1.void in JavaScript
思考:我們經常會使用到 javascript:void(0)
這樣的代碼,那麼在 JavaScript 中 javascript:void(0)
代表的是什麼意思呢?
javascript:void(0)
中最關鍵的是 void 關鍵字, void 是 JavaScript 中非常重要的關鍵字,該操作符指定要計算一個表達式但是不返回值。
下面的代碼創建了一個超鏈接,當用戶點擊以後頁面不會出現任何效果。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>void</title>
</head>
<body>
<a href="javascript:void(0)">點擊此處什麼也不發生因爲void不返回值</a>
</body>
</html>
當用戶點擊時,void(0) 計算爲 0,但 Javascript 上沒有任何效果。因爲void不返回值。
再看下面的代碼,在用戶點擊鏈接後顯示彈出信息:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>void</title>
</head>
<body>
<a href="javascript:void(alert('Bounce!!!'))">點擊此處彈出窗口</a>
</body>
</html>
此時會依照代碼彈出 Bounce!!!提示框。
由此可見,void()僅僅是代表不返回任何值,但是括號內的表達式還是要運行,如上述 void(alert('Bounce!!!'))
2.href="#"
與href="javascript:void(0)"
的區別
#
包含了一個位置信息,默認的錨是 #top
,也就是網頁的上端。而 javascript:void(0)
僅僅表示一個死鏈接。
在頁面很長的時候會使用 #
來定位頁面的具體位置,格式爲:# + id。
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>void</title>
</head>
<body>
<a href="javascript:void(0)">點我沒有反應哦!</a>
<br />
<!-- 跳轉到指定id = pos元素的地方 -->
<a href="#pos">點我到指定id具體位置哦!</a>
<br />
<br />
...(省略許多換行,因爲最後需要能有頁面下拉跳轉的效果)
<br />
<br />
<p id="pos" style="color: red;">這是指定的id=pos 的位置</p>
</body>
</html>
實現效果如下: