javascript显式类型转换和隐式类型装换注意点(自用)

一、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不可以等于任何东西

猜你喜欢

转载自blog.csdn.net/qq_38862852/article/details/81462507