JavaScript 類型轉換

来源:https://www.cnblogs.com/yuzhihui/archive/2023/01/25/17067231.html
-Advertisement-
Play Games

JavaScript 中有兩種類型轉換:隱式類型轉換和顯式類型轉換。 隱式類型轉換指 JavaScript 在運行時自動將一種類型轉換為另一種類型。例如,在數學運算中,JavaScript 會將字元串轉換為數字。 顯式類型轉換指在代碼中使用內置函數或全局對象將一種類型顯式地轉換為另一種類型。例如,使 ...


JavaScript 中有兩種類型轉換:隱式類型轉換和顯式類型轉換。

隱式類型轉換指 JavaScript 在運行時自動將一種類型轉換為另一種類型。例如,在數學運算中,JavaScript 會將字元串轉換為數字。

顯式類型轉換指在代碼中使用內置函數或全局對象將一種類型顯式地轉換為另一種類型。例如,使用 Number() 函數將字元串轉換為數字,使用 String() 函數將數字轉換為字元串。

另外,JavaScript 還提供了一些常用的類型轉換函數,如 parseInt() 和 parseFloat() 用於將字元串轉換為整數和浮點數。

還有一些其它的方法來進行類型轉換,如:

  • 使用 + 運算符將字元串轉換為數字
  • 使用 valueOf() 方法將對象轉換為原始類型
  • 使用 toString() 方法將數字、布爾值、對象轉換為字元串

需要註意的是,在 JavaScript 中使用 == 運算符進行比較時會發生隱式類型轉換,而使用 === 運算符進行比較時不會發生類型轉換,所以在比較值的相等性時建議使用 === 運算符。

需要註意的是,JavaScript 的類型轉換有一些需要特別註意的地方:

  • 當一個值被賦值給另一個變數時,它會被隱式地轉換為該變數的數據類型。
  • 當一個值用於布爾運算時,它會被隱式地轉換為布爾值。
  • 當一個值用於數學運算時,它會被隱式地轉換為數字。
  • 當一個值被作為字元串連接時,它會被隱式地轉換為字元串。
  • 當一個值被作為對象的屬性時,它會被隱式地轉換為字元串。

 

以下是一些 JavaScript 類型轉換的示例:

1、隱式類型轉換:

let num = "42";
console.log(num + 2); // "422"

2、顯式類型轉換:

let num = "42";
console.log(Number(num) + 2); // 44

3、parseInt() 和 parseFloat() 函數轉換:

console.log(parseInt("42", 10)); // 42
console.log(parseFloat("3.14")); // 3.14

4、toString() 函數轉換:

console.log((42).toString()); // "42"
console.log((true).toString()); // "true"

5、布爾值轉換:

console.log(Boolean(0)); // false
console.log(Boolean("hello")); // true

6、運算符轉換:

console.log(+"42") // 42

7、使用 Object() 函數將原始類型轉換為對象:

console.log(typeof Object(42)); // object

8、使用 Symbol() 函數將字元串轉換為 Symbol 類型:

console.log(typeof Symbol("hello")); // symbol

9、使用 JSON.parse()JSON.stringify() 函數將字元串轉換為對象和對象轉換為字元串:

let jsonString = '{"name":"John","age":30}';
let obj = JSON.parse(jsonString);
console.log(obj); // { name: 'John', age: 30 }

let jsonString2 = JSON.stringify(obj);
console.log(jsonString2); // '{"name":"John","age":30}'

需要註意的是,上述類型轉換方式需要滿足一定的條件,需要註意數據的合法性,如 JSON.parse() 和 JSON.stringify() 方法只能解析和序列化 JSON 格式的字元串。

還有一些需要註意的地方:

  • 當使用 parseInt() 和 parseFloat() 方法將字元串轉換為數字時,如果字元串不符合數字格式,則會返回 NaN,因此需要使用 isNaN() 函數判斷轉換結果是否為 NaN。

  • 當使用 JSON.parse() 方法將字元串轉換為對象時,如果字元串不符合 JSON 格式,則會拋出錯誤。

  • 當使用 Symbol() 函數將字元串轉換為 Symbol 類型時,在內部存儲的是一個符號,不是字元串。因此,當比較兩個 Symbol 類型的值時,它們只有在記憶體中的地址相同時才相等。

  • 當使用 Object() 函數將原始類型轉換為對象時,會創建一個包裝對象。因此,在使用包裝對象時需要註意包裝對象和原始值之間的差異。

在使用類型轉換時,需要根據實際需求進行選擇,並且要註意隱式類型轉換的影響。

作者:yuzhihui
出處:http://www.cnblogs.com/yuzhihui/ 聲明:歡迎任何形式的轉載,但請務必註明出處!!!
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...