类型转换

什么是类型转换?

把一种数据类型转换成另外一种数据类型 。

为什么要转换?

有的时候,我们需要进行数据之间的操作,需要两种数据都是一样的类型才能进行操作,如果两种类型不同,可能得不到我们想要的结果,这个时候就需要进行类型转换。

可以进行转换的数据类型

js可以把任意一种数据类型转换成以下几种 :
数字类型。
字符串类型。
布尔值类型。

任意类型转数字:

Undefined类型转数字

1 var a=undefined;        
2 console.log(Number(a));//NaN

Null类型转数字

1 var a=null;        
2 console.log(Number(a));//0

Boolean类型转数字

1 var a=true;        
2 console.log(Number(a));//1
3 var b=false;
4 console.log(Number(b));//0

String类型转数字

1 var a='';//空字符串
2 console.log(Number(a));//0
3 var a=' ';//空格字符串
4 console.log(Number(a));//0
5 var a='s';//非数字
6 console.log(Number(a));//NaN

Object类型转数字

1 var a={};//对象
2 console.log(Number(a));//NaN
3 var b=[];//空数组
4 console.log(Number(b));//0
5 var c=[1,2];//非空数组
6 console.log(Number(c));//NaN

任意数据类型转布尔值:

Undefined类型转布尔值

1 var a=undefined;
2 console.log(Boolean(a));//false

 Null类型转布尔值

1 var a=null;
2 console.log(Boolean(a));//false

Number类型转布尔值

1 var a=0;
2 console.log(Boolean(a));//false
3 var b=-1;//非0数字
4 console.log(Boolean(b));//true
5 var c=NaN;
6 console.log(Boolean(c));//false

String类型转布尔值

1 var a=' a';//非空字符串(包含空格)
2 console.log(Boolean(a));//true

Object类型转布尔值

1 var a={};
2 console.log(Boolean(a));//true
3 var b=[];
4 console.log(Boolean(b));//true
5 //对象类型转布尔值结果都是true

字符串转数字

语法:parseInt(字符串);

1 var a='123';
2 console.log(parseInt(a));//数字123

字符串的第一位字符,必需为数字或者空格+数字,这个时候,它会一直往后找,直到找到一个非数字的时候,就停止查找,把找到的数字返回出来。否则返回NaN。

1 var a='        100';
2 console.log(parseInt(a));//100
3 var b='a123';
4 console.log(parseInt(b));//NaN

语法:parseFloat(字符串);

1 var a='12.33';
2 console.log(parseFloat(a));//12.33

把字符串转为浮点型数字(小数),规则与parseInt一样。

isNaN

判断一个数据是不是NaN,如果这个数据是NaN,返回true,如果不是返回false。

1 var a=NaN;
2 console.log(isNaN(a));//true
3 var b=112;
4 console.log(isNaN(b));//false

隐式类型转换

我们没有明确告诉js要转什么类型,但是在运算的时候,如果不转成另一种类型,运算就无法进行。这个时候js会自动把类型进行转换。

1 console.log(true+true);//2
2 console.log(true-false);//1
3 console.log(null*true);//0
4 console.log([]+true);//字符串true
原文地址:https://www.cnblogs.com/imguo/p/5763234.html