一篇文章搞定JavaScript类型转换(面试常见)

阅读时长 4 分钟读完

JavaScript 类型转换是前端开发中非常重要的一环,也是面试中经常被考察的一个点。在本篇文章中,我们将深入探讨 JavaScript 中的类型转换,包括显式类型转换和隐式类型转换,并提供了一些示例代码以帮助读者更好地理解。

显式类型转换

显式类型转换是指通过代码明确地将一个值从一种类型转换为另一种类型。在 JavaScript 中,有三种主要的显式类型转换:字符串转换、数字转换和布尔转换。

字符串转换

将一个值转换为字符串可以使用 toString() 方法或 String() 函数。

需要注意的是,nullundefined 没有 toString() 方法,因此必须使用 String() 函数来转换。

数字转换

将一个值转换为数字可以使用 parseInt() 函数、parseFloat() 函数或 Number() 函数。其中,parseInt() 函数用于将字符串转换为整数,而 parseFloat() 函数用于将字符串转换为浮点数。

需要注意的是,如果传入的字符串无法转换为数字,则返回 NaN

布尔转换

将一个值转换为布尔可以使用 Boolean() 函数。其中,以下值会被转换为 false

  • 0
  • NaN
  • null
  • undefined
  • 空字符串 ""

其他所有值都会被转换为 true

隐式类型转换

隐式类型转换是指在代码执行过程中自动发生的类型转换,通常发生在比较运算、算术运算或逻辑运算中。

比较运算符

在比较运算中,如果两个操作数的类型不同,则 JavaScript 会尝试将它们转换为相同的类型后再进行比较。具体转换规则如下:

  • 如果一个操作数是字符串,另一个操作数会被转换为字符串。
  • 如果一个操作数是数字,另一个操作数会被转换为数字。
  • 如果一个操作数是对象,另一个操作数会被转换为原始值后再进行比较。

算术运算符

在算术运算中,如果操作数不是数字,则 JavaScript 会尝试将它们转换为数字后再进行计算。具体转换规则如下:

  • 如果一个操作数是字符串,且能够被解析为数字,则将其转换为数字。
  • 如果一个操作数是布尔值,则 true 转换为 1false 转换为 0
  • 如果一个操作数是对象,则先调用对象的 valueOf()

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/895

纠错
反馈