undefined 與void 0

參考:https://segmentfault.com/a/1190000000474941javascript

 Javascript中void是一個操做符,該操做符指定要計算一個表達式可是不返回值
void 操做符用法格式以下:
1. javascript:void (expression)
2. javascript:void expression

expression 是一個要計算的 Javascript 標準的表達式。表達式外側的圓括號是選的,可是寫上去是一個好習慣。 (實現版本   Navigator 3.0   )

你以使用 void 操做符指定超級連接。表達式會被計算可是不會當前文檔處裝入任何內容。java

 

var a = void 0;  //返回undefined,這種方式比直接var a更好express

undefined不是保留字,能夠被改變。segmentfault

判斷變量是undefined,能夠經過void 0來判斷(a==void 0)。安全

 

function testVoid(){
    var a = undefined;
    var undefined = 'hello';
    var b = undefined;
    console.log('a',a);  // undefined
    console.log('b',b);  //hello
    console.log(a===void 0); //true
    console.log('undefined',undefined); //hello
}

testVoid();

void有以下做用:服務器

  • 經過採用void 0undefined比採用字面上的undefined更靠譜更安全,應該優先採用void 0這種方式。
  • 填充<a>href確保點擊時不會產生頁面跳轉; 填充<image>src,確保不會向服務器發出垃圾請求。spa

相關文章
相關標籤/搜索