Menu Close

javascript 类型转换(Type Conversions)

大多数情况下,运算符和函数会自动将传递给它们的值转换为正确的类型。

例如,alert 会自动将任何值转换为字符串以显示它,而数学运算会将值转换为数字。

但在某些情况下,我们需要显式地将值转换为期望的类型。

暂不讨论对象

在本章中,我们不会涉及对象。目前,我们只讨论原始类型。

稍后,在学习对象之后,我们将在“对象到原始值的转换”一章中了解对象是如何适用的。

字符串转换(String Conversion)

当我们需要一个值的字符串形式时,就会发生字符串转换。

例如,alert(value) 会将值转换为字符串以进行显示。

我们也可以调用 String(value) 函数将一个值转换为字符串:

let value = true;
alert(typeof value); // boolean

value = String(value); // now value is a string "true"
alert(typeof value); // string

字符串转换大多是显而易见的。false 变成 "false"null 变成 "null",等等。

数字转换(Numeric Conversion)

在数学函数和表达式中,数值转换是自动发生的。

例如,当除法 / 应用于非数字时:

alert( "6" / "2" ); // 3, strings are converted to numbers

我们可以使用 Number(value) 函数将一个值显式地转换为数字:

let str = "123";
alert(typeof str); // string

let num = Number(str); // becomes a number 123

alert(typeof num); // number

当我们从基于字符串的来源(如文本表单)读取一个值,但期望输入的是数字时,通常需要显式转换。

如果字符串不是一个有效的数字,那么这种转换的结果将是 NaN

例如:

let age = Number("不是数字的任意字符串");

alert(age); // NaN, 转换失败

数字转换规则:

  • undefinedNaN

  • null0

  • true / false1 / 0

  • 字符串:去掉首尾空格后,如果是有效数字,则转换为对应数字,否则为 NaN

示例:

Number(" 123 ") // 123  
Number("123z") // NaN  
Number(true)   // 1  
Number(null)   // 0  

请注意,nullundefined 在这里的表现不同:null 会变为 0,而 undefined 会变为 NaN

大多数数学运算符也会执行这样的转换,我们将在下一章中看到。

布尔转换(Boolean Conversion)

布尔转换是最简单的一种。它发生在逻辑运算中(稍后我们会遇到条件判断和类似的操作),也可以通过调用 Boolean(value) 来显式执行。

转换规则:

  • 被直观认为是“空”的值(如 0、空字符串 ""nullundefinedNaN)会变为 false

  • 其他值都会变为 true

例如:

alert( Boolean(1) ); // true
alert( Boolean(0) ); // false

alert( Boolean("hello") ); // true
alert( Boolean("") ); // false

请注意:字符串 "0" 的布尔值是 true

有些语言(例如 PHP)将 "0" 视为 false,但在 JavaScript 中,非空字符串始终为 true

总结

javascript 类型转换(Type Conversions)
javascript 类型转换(Type Conversions)

最常用的三种类型转换是:转字符串转数字转布尔值

字符串转换(String Conversion)

发生在我们输出内容时。可通过 String(value) 显式转换。
对原始值来说,转换通常是显而易见的。

数字转换(Numeric Conversion)

发生在数学运算中。可通过 Number(value) 显式转换。

转换规则:

  • undefinedNaN

  • null0

  • true / false1 / 0

  • 字符串:去除空格后为有效数字则转换,否则为 NaN

布尔转换(Boolean Conversion)

发生在逻辑操作中。可通过 Boolean(value) 显式转换。

false 的值:

  • 0

  • ""(空字符串)

  • null

  • undefined

  • NaN

其他值均为 true

这三种转换是 JavaScript 中最基础也最常见的类型变化机制。

 

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Leave the field below empty!

Posted in JavaScript 基础

Related Posts