把一种数据类型转换成另外一种数据类型,js支持把任意一种数据转换成以下类型 数字,字符串,布尔值。对象转成这三种数据是没有意义的,因为对象里面可以放任意一种数据类型。
今天先介绍一下数字转换。那么我们先看看各数据类型转换的情况
任意类型转数字
Number(要转换的值) 把任意类型都转成数字
1、Undefined 转数字的结果NaN
2、Null 转数字的结果0
3、Boolean true转换为1 false转换为0
4、String 空字符串或空格字符串转数字的结果为0,字符串里如果是一个纯数字的话,转换为对应的数字,如果不是一个纯数字,结果为NaN
5、Number 数字转数字的结果还为原来的数字
6、Object 空数组转数字的结果为0,空对象为NaN
var u1 = undefined;
console.log(Number(u1)); //NaN
var u2 = null;
console.log(Number(u2)); //0
var u3 = true;
var u4 = false;
console.log(Number(u3)); //1
console.log(Number(u4)); //0
var u5 = '';
console.log(Number(u5)); //0
var u6 = ' ';
console.log(Number(u6));
var u7 = 'sog';
console.log(Number(u7)); //NaN
var u8 = "012"
console.log(Number(u8)); //12
var u9 = "12a"
console.log(Number(u9)); //NaN
var u10 = "12*12"
console.log(Number(u10)); //NaN
var u11 = {}
console.log(Number(u11));// NaN
var u12 = []
console.log(Number(u12)); //0
当然除了Number() 这个方法 还有另外两种方法: parseInt() , parseFloat();
paresInt(要转换的值) 把字符串转成整数
paresFloat(要转换的值) 把字符串转成浮点型(带小数)数字
规则: 传进来的字符串必须是数字或者空格加数字开头,它会从数字开始,一位一位往后找,直到找到的字符不是数字就会停止,会把找到的数字字符转成真正的数字。如果没找到那就返回一个NaN 。
var s1 = "100px"
console.log(parseInt(s1)); //100
var s2 = " 100px"
console.log(parseInt(s2)); //100
var s3 = 'px100 ';
console.log(parseInt(s3)); //NaN
var s4 = "100.256rem247";
console.log(parseFloat(s4)); //100.256
var s5 = '01234';
console.log(parseInt(s5)); //1234
Pritce:
1、数据类型转换,转数字有几种方法?
2、对象转成数据类型是什么情况?
3、字符串转成数字会有哪几种情况发生?