今天看原始碼的時候看到void 0
這樣的寫法,平時在業務**裡基本沒有這樣的寫法,於是學習了一下。
在控制台執行了一下void 0
,得到返回值是undefined
。
在mdn上搜了一下void,了解到:
以vue的原始碼為例:
var createemptyvnode = function (text) ;
這段**用於建立乙個空節點。
這裡void 0
返回了undefined
,並與傳入的text引數比較,如果相等,將text賦值為空字串。
為什麼這裡不直接用undefined
,而要「多此一舉」地用void 0
?
看下面這段**:
function test()
可以看到,undefined是可以被重寫的:在test
函式中undefined
被重寫為字串"666"
,而void 0
卻不受影響,依然得到undefined
資料型別。
這裡需要注意:
除了void 0
,也可以用void 123
、void "abc"
等其他void表示式代替,之所以選擇void 0
,是因為它是各種void表示式中位元組數最少之一(6個位元組,用void 0
代替undefined
能節省3個位元組)。
C語言中的 void 0 與 void 0
前幾天看到乙個巨集,它大概是這樣的 define assert param expr expr void 0 assert failed u8 file line 的含意簡單,關鍵是那個 void 0 的用法,我還是第一次見到 我用 void 的時候,有兩種情況 1.放到函式前面,強調函式沒有返回值...
C語言中的 void 0 與 void 0
前幾天看到乙個巨集,它大概是這樣的 define assert param expr expr void 0 assert failed u8 file line 的含意簡單,關鍵是那個 void 0 的用法,我還是第一次見到 別笑 我用 void 的時候,有兩種情況 1.放到函式前面,強調函式沒有...
函式指標 void 0
在很多情況下,尤其是讀別人所寫 的時候,對 c語言宣告的理解能力變得非常重要,而c語言本身的凝練簡約也使得c語言的宣告常常會令人感到非常困惑,因此,在這裡我用一篇的內容來集中闡述一下這個問題。問題 宣告與函式 有一段程式儲存在起始位址為 0的一段記憶體上,如果我們想要呼叫這段程式,請問該如何去做?答...