溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

javascript:void指的是什么意思

發(fā)布時(shí)間:2021-03-05 16:22:53 來源:億速云 閱讀:363 作者:小新 欄目:web開發(fā)

小編給大家分享一下javascript:void指的是什么意思,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

javascript:void是Javascript中void操作符的一種用法格式;void操作符指定要計(jì)算一個(gè)表達(dá)式但是不返回值;開發(fā)者可以使用void實(shí)現(xiàn)a標(biāo)簽在點(diǎn)擊時(shí)不發(fā)生跳轉(zhuǎn),也可以采用void0取undefined。

Javascript中void 是一個(gè)操作符,該操作符指定要計(jì)算一個(gè)表達(dá)式但是不返回值??梢允褂胿oid實(shí)現(xiàn)a標(biāo)簽在點(diǎn)擊時(shí)不會(huì)發(fā)生跳轉(zhuǎn)。也可以采用void0取undefined。

void 操作符用法

javascript:void (expression)
javascript:void expression

expression 是一個(gè)要計(jì)算的 Javascript 標(biāo)準(zhǔn)的表達(dá)式。表達(dá)式外側(cè)的圓括號(hào)是選的,但是寫上去是一個(gè)好習(xí)慣。

你可以使用 void 操作符指定超級(jí)鏈接。表達(dá)式會(huì)被計(jì)算但是不會(huì)當(dāng)前文檔處裝入任何內(nèi)容。上面的代碼創(chuàng)建了一個(gè)超級(jí)鏈接,當(dāng)用戶以后不會(huì)發(fā)生任何事。當(dāng)用戶鏈接時(shí),Javascript 上沒有任何效果。

在ECMAScript 262規(guī)范中的描述

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.

從規(guī)范中可以了解到無論void后的表達(dá)式是什么,void操作符都會(huì)返回undefined

為什么要用 void

undefined 在 Javascript 中并不是保留字和關(guān)鍵字

function isUndefined(param) {
    let undefined = 'hello world';    
    return undefined === param;
}

我們可以在一個(gè)函數(shù)的上下文中定義一個(gè)變量叫 undefined, 這個(gè)時(shí)候如果要訪問真正的 undefined 只能通過全局作用域來取 undefined

window.undefined;
GLOBAL.undefined;

遺憾的是 window 和 GLOBAL 依然可以在函數(shù)上下文中定義, 所以從他們身上取 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();
}

這種方式可行是因?yàn)橐粋€(gè)函數(shù)不指定返回值將默認(rèn)返回 undefined, 缺點(diǎn)是為了判斷 undefined 還要聲明一個(gè)函數(shù), 性能上有所損耗。

優(yōu)先級(jí)

void 優(yōu)先級(jí)僅次于. [] ()

總結(jié):

通過采用 void 0 取 undefined 比采用字面上的 undefined 更安全,應(yīng)該優(yōu)先采用 void 0 這種方式。

填充<a>的href確保點(diǎn)擊時(shí)不會(huì)產(chǎn)生頁面跳轉(zhuǎn), 避免為a標(biāo)簽添加點(diǎn)擊事件使用 return false 組織默認(rèn)行為。

以上是“javascript:void指的是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI