【JS基礎】JavaScript中的void 0


眾所周知,Undefined是JS語言中的7大基本類型之一,表示未定義,它的值只有一個,就是undefined。任何變量在賦值前都是undefined。

而在一些框架源碼中,會出現一些這樣的表達式:

  if (context === void 0) return func;
  
function foo() {
    var a = arguments[0] !== (void 0 ) ? arguments[0] : 2; return a;
  }
  
if (array == null) return void 0;

1. undefined是可變的?

在ES5的全局環境中,undefined是只讀的。而在局部作用域中,undefined是可變的。這個是JS語言公認的設計失誤之一。

2. 什么是void?

void是一元運算符,出現在操作數的左邊,操作數可以是任意類型的值,void右邊的表達式可以是帶括號形式(例如:void(0)),也可以是不帶括號的形式(例如:void 0)。 

3. 使用void 0代替undefined的原因是?

  ① 使用void 0比使用undefined能夠減少3個字節

>"undefined".length
9
>"void 0".length
6

  ② undefined並不是javascript中的保留字,我們可以使用undefined作為變量名字,然后給它賦值。void 0輸出唯一的結果undefined,保證了不變性。

4. undefined與null的區別?

null代表空值,代表“定義了但是為空”。而undefined的代表未定義。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM