JavaScript-4. 数据转化

本文详细介绍了JavaScript中数值、字符串和布尔值之间的类型转换规则,包括强制转换和自动转换的过程。通过具体的示例说明了不同类型的值如何被转化为目标类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

强制转化

Number()

将任何类型的值转化为数值

原始类型
// 字符串:如果可以被转化为数值,则转化为相应的数值
Number('123');  //123

// 字符串:如果不能转化为数值,则转化为NaN
Number('123abc');   //NaN

// 空字符串:转化为0
Number('');     //0

// 布尔值:true转化为1,false转化为0
Number(true);   //1
Number(false);  //0

// undefined:转化为NaN
Number(undefined);  //NaN

// null:转化为0
Number(null);   //0

复合类型

规则如下:

  • 先调用对象的valueOf方法。如果返回原始类型的值,则对该值调用Number方法,不再进行后续步骤
  • 如果valueOf返回的还是对象,调用toString方法。如果返回原始类型的值,则对该值调用Number方法,不再进行后续步骤
  • 如果toString返回的时对象,则报错

大多数对象如果没有自定义valueOf和toString方法,返回的是NaN。包含单个数值的数组将会返回该数值

Number({1:a});  //NaN
Number([1,2,3]);    //NaN
Number([5]);    //5

String()

将任何类型的值转化为字符串

原始类型
// 数字
String(123);    //"123"

// 布尔值:true转化为"true",false转化为"false"
String(true);   //"true"

// undefined:转化为"undefined"
String(undefined);  //"undefined"

// null:转化为"null"
String(null);   //"null"
复合类型

String方法背后的转换规则,与Number方法基本相同,只是互换了valueOf方法和toString方法的执行顺序。

Boolean()

除了下列值,其他值(包括复合类型)转化为true

  • 0
  • NaN
  • undefined
  • null
  • ‘’

自动转化

预期为数值、字符串、布尔值的地方,系统自动调用Number()、String()和Boolean()进行转化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值