javascript:void是Javascript中void運算子的一種用法格式;void運算子指定要計算一個表達式但是不傳回值;開發者可以使用void實作a標籤在點擊時不發生跳轉,也可以採用void0取undefined。
本文操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
Javascript中void 是一個運算符,該運算子指定要計算一個表達式但不傳回值。可以使用void實現a標籤在點擊時不會發生跳躍。也可以採用void0取undefined。
void 運算子用法
javascript:void (expression) javascript:void expression
expression 是一個要計算的 Javascript 標準的表達式。表達式外側的圓括號是選的,但是寫上去是個好習慣。
你可以使用 void 運算子指定超級連結。表達式會被計算但是不會當前文件處裝入任何內容。上面的程式碼創建了一個超級鏈接,當用戶以後不會發生任何事。當使用者連結時,Javascript 上沒有任何效果。
在ECMAScript 262規範中的描述
The void Operator The production UnaryExpression : void UnaryExpression is evaluated as follows: Let expr be the result of evaluating UnaryExpression. Call GetValue(expr). Return undefined. NOTE: GetValue must be called even though its value is not used because it may have observable side-effects.
從規範中可以了解到無論void後的表達式是什麼,void運算子都會傳回undefined
【推薦學習:js基礎教學】
為什麼要用void
undefined 在Javascript 中並不是保留字與關鍵字
function isUndefined(param) { let undefined = 'hello world'; return undefined === param; }
我們可以在一個函數的上下文中定義一個變數叫undefined, 這個時候如果要存取真正的undefined 只能透過全域作用域來取undefined
window.undefined; GLOBAL.undefined;
遺憾的是window 和GLOBAL 依然可以在函數上下文中定義, 所以從他們身上取undefined 也不是安全可靠的方法
function test() { let undefined = 'hello world', window = { undefined: 'joke' }, f = {} ; console.log(undefined); console.log(window.undefined); console.log(f.a === undefined); console.log(f.a === void 0); }
判斷undefined
function isUndefined(param) { return param === void 0; } 另外一种方式 function getUndefined() { return; }; function isUndefined(param) { return param === getUndefined(); }
這種方式可行是因為一個函數不指定回傳值將預設回傳undefined, 缺點是為了判斷undefined 還要宣告一個函數, 效能上有所損耗。
優先權
void 優先權僅次於。 [] ()
總結:
透過採用void 0 取undefined 比採用字面上的undefined 更安全,應該優先採用void 0 這種方式。
填充3499910bf9dac5ae3c52d5ede7383485的href確保點擊時不會產生頁面跳轉, 避免為a標籤添加點擊事件使用 return false 組織預設行為。
以上是javascript:void什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!