前言
本文主要給大家介紹了關于JavaScript運算符規則和隱式類型轉換的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
隱式類型轉換
在 JavaScript 中,當我們進行比較操作或者加減乘除四則運算操作時,常常會觸發 JavaScript 的隱式類型轉換機制;而這部分也往往是令人迷惑的地方。譬如瀏覽器中的 console.log 操作常常會將任何值都轉化為字符串然后展示,而數學運算則會首先將值轉化為數值類型(除了 Date 類型對象)然后進行操作。
我們首先來看幾組典型的 JavaScript 中運算符操作結果,希望閱讀完本部分之后能夠對每一個條目都能進行合理解釋:
// 比較[] == ![] // trueNaN !== NaN // true1 == true // true2 == true // false"2" == true // flasenull > 0 // falsenull < 0 // falsenull == 0 // falsenull >= 0 // true// 加法true + 1 // 1undefined + 1 // NaNlet obj = {};{} + 1 // 1,這里的 {} 被當成了代碼塊{ 1 + 1 } + 1 // 1obj + 1 // [object Object]1{} + {} // Chrome 上顯示 "[object Object][object Object]",Firefox 顯示 NaN[] + {} // [object Object][] + a // [object Object]+ [] // 等價于 + "" => 0{} + [] // 0a + [] // [object Object][2,3] + [1,2] // '2,31,2'[2] + 1 // '21'[2] + (-1) // "2-1"http:// 減法或其他操作,無法進行字符串連接,因此在錯誤的字符串格式下返回 NaN[2] - 1 // 1[2,3] - 1 // NaN{} - 1 // -1原始類型間轉換
JavaScript 中我們常說的原始類型包括了數值類型、字符串類型、布爾類型與空類型這幾種;而我們常用的原始類型之間的轉換函數就是 String、Number 與 Boolean:
// Stringlet value = true;console.log(typeof value); // booleanvalue = String(value); // now value is a string "true"console.log(typeof value); // string// Numberlet str = "123";console.log(typeof str); // stringlet num = Number(str); // becomes a number 123console.log(typeof num); // numberlet age = Number("an arbitrary string instead of a number");console.log(age); // NaN, conversion failed// Booleanconsole.log( Boolean(1) ); // trueconsole.log( Boolean(0) ); // falseconsole.log( Boolean("hello") ); // trueconsole.log( Boolean("") ); // false最終,我們可以得到如下的 JavaScript 原始類型轉換表(包括復合類型向原始類型轉換的范例):
| 原始值 | 轉化為數值類型 | 轉化為字符串類型 | 轉化為 Boolean 類型 |
|---|---|---|---|
| false | 0 | "false" | false |
| true | 1 | "true" | true |
| 0 | 0 | "0" | false |
| 1
學習交流
熱門圖片
猜你喜歡的新聞
新聞熱點 2024-04-27 13:35:46
2024-04-27 13:33:47
2024-04-24 22:53:44
2024-04-23 19:32:50
2024-04-23 19:25:50
2024-04-23 19:13:19
疑難解答 圖片精選 |