js数据类型间的互相转换

本文主要介绍了JavaScript中其他数据类型转换为number、字符串和布尔值的方法。转换为number有Number()、parseInt()和parseFloat()函数;转换为字符串可使用toString()方法;有6个值转换为布尔值时为false。同时指出Undefined、Null和Object转换类型无意义。

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

1.其他数据类型转换为number

有 3 个函数可以把非数值转换为数值:Number() 、 parseInt() 和 parseFloat() 。第一个函数, 即转型函数 Number() 可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。日常使用中,parseInt)()比较的常用,

而在 ECMAScript 5 JavaScript 引擎中, parseInt() 已经不具有解析八进制值的能力,因此前导的零会 被认为无效,从而将这个值当成 "70" ,结果就得到十进制的 70。在 ECMAScript 5 中,即使是在非严格 模式下也会如此。

为了消除在使用 parseInt() 函数时可能导致的上述困惑,可以为这个函数提供第二个参数:转换 时使用的基数(即多少进制)。如果知道要解析的值是十六进制格式的字符串,那么指定基数 16 作为第 二个参数,可以保证得到正确的结果

parseInt()与parseFloat()的区别:

1.parseInt()会忽略非数字字符,parseFloat()除对第一个小数点有效, 也会忽略非数字字符

2.它们都会忽略前导0;

3.parseInt()不解析8进制,parseFloat()只解析10进制

Boolean:true和false 分别转换为1和0;
number:简单的传入和返回
null:0
undefined:NaN

string:1.若单纯为数字,转换为10进制数字(忽略前导0);例:"123"转为123,"011"转为11

2.如果为有效浮点数,则转换为对应的浮点数值,例:"1.5"转换为1.5

3.如果为有效16进制格式,转换为同等的10进制数,例:'0xf'转化为15

4.如果为空字符串,转换为0,例:''转为0, 5.如果是除上述之外的字符,转换为NaN,例:

Object:如果是对象,则调用对象的 valueOf() 方法,然后依照前面的规则转换返回的值。如果转换 的结果是 NaN ,则调用对象的 toString() 方法,然后再次依照前面的规则转换返回的字符 串值。不过一般都是转换为NaN,如果想要转换为所需要的数字,可以修改valueOf()和toString()方法

2.其他数据类型转换为字符串

要把一个值转换为一个字符串可以使用toString() 方法

number:例:1转换为'1',
Boolean:例:true转换为'true',false转换为'false'
null:报错,没有此方法
undefined:报错,没有此方法
string:返回一个字符串副本
Object:返回 "[object Object]"

3.其他数据类型转换为布尔值

数据类型转换为true值转换为false值
Booleantruefalse
String任何非空字符串""空字符串
Number任何非零数值(包括无穷大)0和NaN
Object任何对象
Undefined不适用undfined
null不适用null

6个falsey:false,""空字符串,null,undefined, 0和NaN

4.由于Undefined和Null,Object的特殊性,所以转换类型没有意义,没有转换方法。

5.参考资料

javascript高级程序设计(第三版)

6.未完待续……

转载于:https://juejin.im/post/5c9247f7f265da60cd2b5634

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值