首頁  >  文章  >  web前端  >  Javascript中的運算子void(0)的定義與詳解

Javascript中的運算子void(0)的定義與詳解

零下一度
零下一度原創
2017-05-17 16:06:221502瀏覽

Javascript中void是一個運算符,該運算子指定要計算一個表達式但不傳回值。

javascript:void(0) 中最關鍵的是 void 關鍵字, void 是 JavaScript 中非常重要的關鍵字,該運算元指定要計算一個表達式但不傳回值。

void 運算子用法格式如下:

1. javascript:void (expression)
2. javascript:void expression

expression 是一個要計算的 Javascript 標準的表達式。表達式外側的圓括號是選的,但是寫上去是個好習慣。

你以使用 void 運算子指定超級連結。表達式會被計算但是不會當前文件處裝入任何內容。

範例-點擊超連結不跳到

1:<a href="####"></a>
2:<a href="javascript:void(0)"></a>
3:<a href="javascript:void(null)"></a>
4:<a href="#" onclick="return false"></a>

點擊連結後,頁面會向上滾到頁首,# 預設錨點為#TOP(實際測試發現捲軸會滾到頂端)而以上四種方法僅表示一個死連結都表示是一個死連結不會跳轉也不會回到頂部.

範例-為什麼location.href不自動跳轉?

<a href="javascript:void(0)" onclick="delete(&#39;123&#39;)">删除</a>
function delete(id){
   if(confirm("确实要删除[为什么location.href不自动跳转?]吗?")) {
       location.href="/delete.jsp?id=" + id;
   }
}

以上程式碼不管如何檢查都沒有任何問題,而location.href="/delete.jsp?id=" + id;在別的地方都好使,為什麼這段程式碼就行呢?

原因是那個void(0)把程式碼改成:

<
a href="javascript:delete(&#39;123&#39;)">删除</a>function delete(id) {
   if(confirm("确实要删除[为什么location.href不自动跳转?]吗?")) {
       location.href="/delete.jsp?id=" + id;
   }
}

我們發現,頁面立即就跳轉了,能正常刪除對應的資料.為什麼呢?

因為void是一個運算符,會計算一個表達式,但不會回傳值,當然也不會改變目前頁面的任何內容,也就不會正常的跳轉.

說明

void 運算子對表達式求值,並傳回undefined。在希望求表達式的值,但又不希望腳本的剩餘部分看見這個結果時,該運算子最有用。

連結(href)直接使用javascript:void(0)在IE中可能會引起一些問題,例如:造成gif動畫停止播放等,所以,最安全的方法還是使用「#」。為防止點擊連結後跳到頁首,onclick 事件 return false即可。

【相關推薦】

1. 特別推薦「php程式設計師工具箱」V0.1版本下載

2. 免費js線上影片教學

3. php.cn獨孤九賤(3)-JavaScript影片教學

#4. 解決ie6下javascript:void(0)無效的方法

5. 總結href=javascript:void(0)與href=#之間的差異

6. 謹慎使用javascript:void(0),為什麼這樣寫不好

以上是Javascript中的運算子void(0)的定義與詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn