一、javascript中的数据类型一共有7种:
number:数值基本类型
boolean:布尔类型
string:字符串
null:null
undefined:undefined
object:{key:value}
二、显式类型转换
1.number():把类似数值数据转换成数字类型,无论是什么数据,结果如何,结果的类型都会变成number类型,不能转换的结果为NaN。
number(“123”)=123-->number类型
number(“123ads”)=NaN-->number类型
number(true)=1-->number类型
number(nulll)=0-->number类型
2.praseInt:强制类型转换为整数。
praseInt(true)=NaN
praseInt(“123”)=123>>可以转换字符串的数,但是不会转换boolean。
praseInt(“123adc”)=123>>从数字开始到第一个非数字结束,把数字返回
可以用praseInt(12,16)=18>>把一个12当成16进制转换成10进制!!
3. praseFloat相似与praseInt
4.string():把任何东西都转换成字符串类型>>任何数据!
5.tostring()和string()方法相似,但是有两个值不能用,undefined和null不能使用tostring方法,会报错。
例子:var demo=10;
var num=demo.tostring(8)>>把10转换成8进制,num的结果为12
特点:可以和praseInt方法搭配,praseInt是把其他进制转换成10进制,二头string是把10进制装换成其他进制,可以通过配合实现进制转换功能。
三、隐式类型转换
1.isNaN(“abc”)=true:判断是否为NaN
在执行的时候isNaN()会先把abc字符串进行nmber()运算,再判断是不是NaN。
例子 isNaN(null)=false
2. ++和--
var a=“123”
a++=124 :会在执行之前先进行number(“123”)转换,然后在进行++运算
执行过后的结果一定为数值类型,就算是a="abc"结果会是NaN,它也会是数值类型。
3.+
如果只有一个值进行运算,比如+a,就是把a转换成数值类型
如果是两个值运算,其中有一个为字符串,那他就会把另一个也变成字符串然后做相加。
var a="asd";
var b=1;
a+b的结果为asd1
4.* 和/和- :都是吧两边的数据都进行number()后进行运算
5.==和!=
特殊的例子:
1==true
1==“1”
undefined==null
这些都成立。但是nan不可以等于任何东西