摘要:但是在局部作用域中,還是可以被重寫的。也就是說,后面你隨便跟上一個表達式,返回的都是,如。并且是不能被重寫的。但為什么是呢,是表達式中最短的。用代替能節省字節。不少壓縮工具在壓縮過程中,正是將用代替掉了。
看到了這個么一段代碼.
function foo() { var a = arguments[0] !== (void 0 ) ? arguments[0] : 2; return a; }
void 0 返回undefined,我們都知道的,但是為什么不直接 arguments[0] !== undefined?
1.undefined可以被重寫
undefined 在 ES5 中已經是全局對象的一個只讀(read-only)屬性了,它不能被重寫。但是在局部作用域中,還是可以被重寫的。
(function() {
var undefined = 10;
// 10 -- chrome
alert(undefined);
})();
(function() {
undefined = 10;
// undefined -- chrome
alert(undefined);
})();
2.為什么選擇void 0 作為undefined的替代
void 運算符能對給定的表達式進行求值,然后返回 undefined。也就是說,void 后面你隨便跟上一個表達式,返回的都是 undefined,如 void (2), void (‘hello’)。并且void是不能被重寫的。但為什么是void 0 呢,void 0 是表達式中最短的。用 void 0 代替 undefined 能節省字節。不少 JavaScript 壓縮工具在壓縮過程中,正是將 undefined 用 void 0 代替掉了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/106122.html
摘要:如果你有印象,甚至是中的個關鍵字之一,根據官方標準,它是一個一元操作符,它的唯一作用就是返回一個,不管這個操作符后面傳的操作數是什么。關于數組中的,還有一些很奇怪的地方,比如,如何區分下面這兩個數組中的各項是不是相同下次再說。 恩,這是個問題。如果你有印象,void甚至是js中的26個關鍵字之一,根據ECMA官方標準,它是一個一元操作符,它的唯一作用就是返回一個undefined,不管...
摘要:一定義是的關鍵字,表示一個特殊值,常用來描述空值,運算返回,所以可以將認為是一個特殊的對象值,含義是非對象。調用函數時,應該提供的參數沒有提供,該參數等于。 一 定義 null 是 javascript 的關鍵字,表示一個特殊值,常用來描述空值,typeof 運算返回object,所以可以將 null 認為是一個特殊的對象值,含義是非對象。 undefined 是預定義的全局變量,他的...
摘要:表達式沒有返回值,因此返回結果是。并不改變表達式的結果,只要讓表達式不返回值按慣例我們用來獲得這主要源自語言,當然使用或其他表達式也是可以的。不是數字的數字如果數學運算的操作數不是數字類型,就無法返回一個有效的數字,這種情況下返回值為。 這里的內容是讀書筆記,僅供自己學習所用,有欠缺的地方歡迎留言提示。 第一部分 類型和語法 第1章 類型ECMAScript語言類型包括Undefin...
摘要:原始值就是值本身不可改變,并且沒有方法和屬性。操作的時候看似操作原始值,其實是操作它的副本。代表空指針,就是沒有對象存在,它不是全局對象的屬性。這也是為什么需要替代它的原因。別忘了它們是不同的類型栗子參考資料 原始值就是值本身不可改變,并且沒有方法和屬性。操作的時候看似操作原始值,其實是操作它的副本。 Null 代表空指針,就是沒有對象存在,它不是全局對象的屬性。Null type對應...
摘要:常見的關鍵字有等等常見的保留字有等等本文可能會直接用到的有定義一個變量在瀏覽器控制臺或后臺終端輸出一個值在瀏覽器彈窗輸出一個值基本數據類型基本類型包括數值,字符串,,和布爾型。 標識符命名規則 對于變量名,鍵值對中的鍵名應滿足如下要求: 開頭必須是字母、下劃線(_)或美元符號($) 除了開頭以外的字符也可以是數字 不可以是關鍵字和保留字 最好不要和全局變量/函數同名,會把原有變量/函...
閱讀 2384·2021-11-11 16:54
閱讀 2641·2021-09-26 09:47
閱讀 3993·2021-09-08 09:36
閱讀 2743·2021-07-25 21:37
閱讀 934·2019-08-30 15:54
閱讀 2550·2019-08-30 14:22
閱讀 3259·2019-08-30 13:57
閱讀 2611·2019-08-29 17:17