您好,登錄后才能下訂單哦!
這篇文章主要介紹了JavaScript類型有哪些及怎么掌握的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇JavaScript類型有哪些及怎么掌握文章都會有所收獲,下面我們一起來看看吧。
簡單來說,類型有助于對可以執行常見操作的相似值進行分組。根據我們的數學知識,很容易確定可以對序列11、3、67和中的值求和89。同時,我們知道我們不能將下面的序列JS, is, 和中的值相乘cool,但是我們可以很自然地合并它們。數字和字符串是最流行的類型。
在編程語言中,類型決定了為保存值分配的內存量。值的類型還決定了允許對其執行的操作和方法。
JavaScript 有六種原語類型:string、number、undefined、null、boolean和symbol。還有一個復合類型或object。有趣的是,原始類型是不可變的并且沒有屬性。例如,由于String對象的原因,您可以檢索字符串的長度。代碼像魔術一樣由解釋器"a".length進行評估。new String("a").length還有對象Number、Boolean和Symbol,它們也將屬性添加到自己的基元中。
JavaScript 中的類型看起來簡單而無用,但了解它們的工作原理很重要。它們有助于更好地理解語言及其行為。
類型是編程語言的主要基礎之一。JavaScript 中的許多執行錯誤都是類型錯誤。例如,當我們嘗試將 a 乘以 a 時number,我們會以返回string的形式得到一個靜默錯誤。Not a Number您是否曾經調用過函數并收到錯誤undefined is not a function?當我們嘗試訪問未定義的屬性時,就會發生這種情況。由于 Javascript 無法找到該屬性,因此它返回其默認后備值:undefined.
另一個常見的與類型相關的錯誤是當我們嘗試從值為nullor的值更改或訪問屬性時undefined。請記住,這里沒有構造函數喜歡Undefined或Null拯救我們。我們最終得到一個錯誤。更不用說我們錯誤的值類型this并嘗試禁止的東西的所有時間。
一個好的類型系統可以幫助我們避免這些常見的錯誤。根據定義,JavaScript 是一種解釋型和動態語言,它要求類型系統在代碼執行期間工作。該語言還嘗試通過靜默轉換值類型來提供幫助。當您嘗試將一個數字與包含一個數字的 a 相加2時,它對您有利。:sweat_smile:'3'string類型更改或強制是許多開發人員切換到嚴格使用===來檢查值的相等性的原因,但它比修復強制,不是癥狀解釋的要多得多。
本質上,JavaScript 中的類型是一個移動的目標,很難擊中它們。此外,由于語言是弱類型的,并且該類型可能會改變,因此無法預測或確保變量類型。
靜態類型檢查確保程序是正確的,至少在執行之前是靜態的。在 JavaScript 中,還有其他方法可以注釋值類型。它可以避免你對試圖以瘋狂的方式操作不同類型的用戶產生錯誤。
下面的代碼計算 a 的價格Product。從第 4 行到第 6 行,我們使用Flow注釋定義Product屬性的類型。其余代碼是純 JavaScript,但請注意第 19 行的值不兼容。這是一種賦予您價值的代碼。幸運的是,Flow 分析器會在編寫代碼時警告您了解潛在的錯誤。
/* @flow */class Product { name: string cost: number tax: number constructor (name, cost, tax) { this.name = name this.cost = cost this.tax = tax } price() { return this.cost * (1 + this.tax) } }const item = new Product("Banana", 2, "%30")
Flow 批注允許您定義所有不同的原語、 對象、構造函數/類(Date、、Array...),甚至是字面量。有一些高級類型,比如任何接受所有類型的類型;可以為空或可能,以指示類型或null;以及 類型和接口的聯合和交集(更多關于下面的內容)。
恕我直言,最強大的注釋是新類型或別名,它們允許您為一組類型命名以獲取專有屬性;定義上下文所關注的一組非排他性的重要屬性或方法的接口;和泛型。最后一個,允許您定義數組值的類型或Promise例如結果的類型。
根據Kris Jenkins的說法,通過類型定義,可以預測設計問題。返回許多不同類型的函數可能意味著計劃中的錯誤。新類型的創建有助于程序員定義問題的實體。在任何情況下,類型注釋都是編寫更安全、更易理解的代碼的好資源。
關于“JavaScript類型有哪些及怎么掌握”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“JavaScript類型有哪些及怎么掌握”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。