JS类型转换

本文详细介绍了在JavaScript中如何将各种数据类型转换为string、boolean和number。包括使用+””、toString()、String()、Boolean()、+运算符、Number()、parseInt()和parseFloat()等方法,以及在转换过程中的特例和注意事项。
摘要由CSDN通过智能技术生成

将其他类型转化为string类型

① 使用字符串拼接 +””

var a = 10;

var b = true;

console.log(a+"",typeof (a+""));

console.log(b+"",typeof (b+""));

console.log(null+"",typeof (null+""));

console.log(undefined+"",typeof (undefined+""));

运行结果如下:

 

② 使用toString()函数

var a = 10;

var b = true;

console.log(a.toString(),typeof (a.toString()));

console.log(b.toString(),typeof (b.toString()));

运行结果如下:

 

null和undefined不可以调用toString,因为没有包装器函数

console.log(null.toString(),typeof (null.toString()));

console.log(undefined.toString(),typeof(undefined.toString());

运行结果如下:

 

 

③ 使用String()包装器函数

var a = 10;

var b = true;

console.log(String(a),typeof String(a));

console.log(String(b),typeof String(b));

console.log(String(null),typeof String(null));

console.log(String(undefined),typeof String(undefined));

运行结果如下:

 

附:

将number转为string,调用toString()放入一些进制参数

var a =10;

console.log(a.toString());

console.log(a.toString(2));//将number转为2进制string

console.log(a.toString(8));//将number转为8进制string

console.log(a.toString(16));//将number转为16进制string

运行结果如下:

 

将其他数据类型转换为boolean

① 使用Boolean()包装器函数

console.log(Boolean(10),typeof Boolean(10));

console.log(Boolean('hello'),typeof Boolean('hello'));

console.log(Boolean(null),typeof Boolean(null));

console.log(Boolean(undefined),typeof Boolean(undefined));

运行结果如下:

 

② 使用!!取反

console.log(!!10,typeof (!!10));

console.log(!!'hello',typeof (!!'hello'));

console.log(!!null,typeof (!!null));

console.log(!!undefined,typeof (!!undefined));

运行结果如下:

 

将其他数据类型转为number类型

① 使用+号

var a = '10';

var b = true;

var c = false;

console.log(+a,+b,+c,typeof(+a),typeof(+b),typeof(+c));

console.log(+null,+undefined,typeof(+null),typeof(+undefined);

运行结果如下:

 

② 使用Number包装器函数

var a = '10';

var b = true;

var c = false;

console.log(Number(a),typeof Number(a));

console.log(Number(b),typeof Number(b));

console.log(Number(c),typeof Number(c));

console.log(Number(null),typeof Number(a));

console.log(Number(undefined),typeof  Number(undefined));

运行结果如下:

 

特例:

console.log(Number("123")); //123  如果仅包含数值,转换为对应的数值

console.log(Number("234.1")); //234.1 解析为对应的小数

console.log(Number("+12.1")); //12.1 首位为符号位,其余为为数值,转换为对应的数值

console.log(Number("1+2.3"));; // NaN 符号位出现在其他位置,解析为NaN

console.log(Number("0xa"));; //10 如果仅包含十六进制格式,转为为对应的十进制的值

console.log(Number("010"));; //10【注意】不会当做八进制被解析,结果为10。

console.log(Number(""));; // 0 空字符串被转换为0

console.log(Number("123ac"));; // NaN   包含其他字符:NaN

③ 使用parseInt()方法--取整数

var a = '10';

var b = true;

var c = false;

console.log(parseInt(a),typeof parseInt(a));//10

console.log(parseInt(b),typeof parseInt(b));//NaN

console.log(parseInt(c),typeof parseInt(c));//NaN

console.log(parseInt(null),typeof parseInt(null));//NaN

console.log(parseInt(undefined),typeof parseInt(undefined));//NaN

运行结果如下:

 

特例:

console.log(parseInt("123"));; //123;如果仅包含数值,转换为对应的数值

console.log(parseInt("234.1"));; //234;小数点后面的数值省略

console.log(parseInt("+12.1"));; //12; 首位为符号位,其余为为数值,转换为整数

console.log(parseInt("1+2.7"));; //1; 符号位出现在其他位置,保留符号位前面的数值

console.log(parseInt("0xa"));; //10; 如果仅包含十六进制格式,转为为对应的十进制的值

console.log(parseInt("010"));; //10; 【注意】不会当做八进制被解析,结果为10

console.log(parseInt(""));; //NaN;空字符串被转换为NaN

console.log(parseInt("1+2.3"));; //1;如果首位为数值,依次向后解析,找到连续的数值,直到遇到第一个非数值的,将之前获取的数值转换为Number返回

console.log(parseInt("123ac"));; //123;

运行结果如下:

④ 使用parseFloat方法,保留小数

console.log(parseFloat('10.1'),typeof parseFloat('10.1'));

console.log(parseFloat(null),typeof parseFloat(null));

console.log(parseFloat(undefined),typeof parseFloat(undefined));

console.log(parseFloat(true),typeof parseFloat(true));

console.log(parseFloat(""),typeof parseFloat(""));

运行结果如下:

 

特例:

console.log(parseFloat("123"));; //123;如果仅包含数值,转换为对应的数值

console.log(parseFloat("234.1"));; //234.1;保留小数点后面的数值

console.log(parseFloat("+12.1"));; //12.1; 首位为符号位,其余为数值,保留小数

console.log(parseFloat("1+2.6"));; //1;符号位出现在其他位置,保留符号位前的数值

console.log(parseFloat("0xa"));; //0; 【注意】不会当做十六进制来解析。

console.log(parseFloat("010"));; //10; 【注意】不会当做八进制被解析,结果为10

console.log(parseFloat(""));; //NaN;空字符串被转换为NaN

console.log(parseFloat("123.3ac"));;//123.3;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值