摘要:在中有個比較有意思的類型叫做枚舉,使用枚舉類型可以為一組數值賦予友好的名字。最常見的就是比如說周一到周日,就可以用枚舉表示。
在 TypeScript 中有個比較有意思的類型叫做枚舉,使用枚舉類型可以為一組數值賦予友好的名字。最常見的就是比如說周一到周日,就可以用枚舉表示。
官網用了一個小例子說明:
enum Color {Red, Green, Blue} let c: Color = Color.Green;
這個轉化成 js 就是
var Color; (function (Color) { Color[Color["Red"] = 0] = "Red"; Color[Color["Green"] = 1] = "Green"; Color[Color["Blue"] = 2] = "Blue"; })(Color || (Color = {})); var c = Color.Green; // Color = {0: "Red", 1: "Green", 2: "Blue", Red: 0, Green: 1, Blue: 2}
仔細看中間的代碼會發現有個 Color[Color["Red"] = 0] = "Red"; 的表示方法,這個是什么鬼?
我們知道對象在屬性是 String 類型的,所以我猜測也就是使用了 String() 對中間的表達式進行了類型轉化,我們在控制臺可以簡單的輸入 String(Color["Red"] = 0),返回的結果為0。
其實這個就是基本的 js 運算規則,如果你理解下面的代碼,你也就理解了為什么返回 0 了。
var a = b = 0 // a=0 // b=0
我想這個大多數人都能看懂,不過如果我們變動一下。
"use strict" var a = b =0
那么這個就會報錯,因為 b 沒有使用 var 進行聲明,這個就是 JS 運算規則中叫做“右結合”,上述代碼正確的理解方式就是:
var a = ( b = 0 );
哈哈,我想你應該知道了,所以 String(Color["Red"] = 0) 的正確理解方式就是
var tmp = Color["red"] = 0; String(tmp);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/91894.html
摘要:如果返回值是一個原始值,則返回這個原始值。如果或者中的任意一個為字符串,則將另外一個也轉換成字符串,然后返回兩個字符串連接操作后的結果。因此,的結果實際上是兩個空字符串的連接。 原文:What is {} + {} in JavaScript? 譯者:justjavac 最近,Gary Bernhardt 在一個簡短的演講視頻Wat中指出了一個有趣的 JavaScript 怪癖...
摘要:進階期理解中的執行上下文和執行棧進階期深入之執行上下文棧和變量對象但是今天補充一個知識點某些情況下,調用堆棧中函數調用的數量超出了調用堆棧的實際大小,瀏覽器會拋出一個錯誤終止運行。 (關注福利,關注本公眾號回復[資料]領取優質前端視頻,包括Vue、React、Node源碼和實戰、面試指導) 本周正式開始前端進階的第一期,本周的主題是調用堆棧,今天是第3天。 本計劃一共28期,每期重點攻...
摘要:對象數組都是引用數據類型。低高數據類型轉換必須滿足如下規則不能對類型進行類型轉換。強制類型轉換條件是轉換的數據類型必須是兼容的。聲明變量的基本格式如下格式說明為數據類型。但為了對類的使用者可見,大多數靜態變量聲明為類型。 變量就是申請內存來存儲值。也就是說,當創建變量的時候,需要在內存中申請空間。 內存管理系統根據變量的類型為變量分配存儲空間,分配的空間只能用來儲存該類型數據。 因此,...
摘要:正確的解釋是允許在相等比較中進行強制類型轉換,而不允許。參考資料小議下字符串比較大小中的強制類型轉換核心概念類型轉換對象和方法隱式類型轉換小結 開胃菜 先說一個題外話,我在工作中遇到一個問題,需要比較 08:00 和 09:00 的大小,最后我找到三種方法: 在兩個字符串前后各拼接相同的年月日和秒,拼成完整的時間格式進行比較: var head = 2016-01-01 var fo...
閱讀 3684·2021-11-25 09:43
閱讀 2600·2021-11-18 13:11
閱讀 2195·2019-08-30 15:55
閱讀 3272·2019-08-26 11:58
閱讀 2823·2019-08-26 10:47
閱讀 2230·2019-08-26 10:20
閱讀 1271·2019-08-23 17:59
閱讀 2999·2019-08-23 15:54