当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JavaScript之数据类型转换

JavaScript之数据类型转换

2019年08月12日  | 移动技术网IT编程  | 我要评论
写在前面:JavaScript中有多种数据类型,在实际工作中,不管是有意还是无意的,我们总能碰到不一样的数据类型值之间进行运算,或者我想从用户输入获得一个数字时,而用户却输入了一个字符串,这种时候就需要用到今天介绍的东西了——数据类型转换。JS中的数据类型转换主要分为两大类:显示类型转换,隐式类型转 ...

写在前面:javascript中有多种数据类型,在实际工作中,不管是有意还是无意的,我们总能碰到不一样的数据类型值之间进行运算,或者我想从用户输入获得一个数字时,而用户却输入了一个字符串,这种时候就需要用到今天介绍的东西了——数据类型转换。js中的数据类型转换主要分为两大类:显示类型转换,隐式类型转换。

 

一     显示类型转换

         1、number()

              接受一个参数,并把它转换成数字。

              如果参数包含数字和小数点以外的其他字符,则转换失败,返回nan。下面是一切特殊值转换为数字的结果:

1 number(null);//0
2 number(undefined);//nan
3 number(true);//1
4 number(false);//0
5 number("");//0

         2、parseint()

              接受两个参数,第一个参数会被转换成十进制整数,第二个参数是一个数字,规定第一个参数的进制,它是可选的,默认是10。

              转换规则:首先判断第一个参数的数据类型,如果不是字符串或数字类型,则转换失败,直接返回nan;若是数字,则原样返回;若是字符串,则从第一个非空白字符开始依次转换,知道遇到第一个非空字符为止,一数字类型返回前面的部分。如果正负号是第一个非空字符,那么可以识别正负号。但不能识别小数点。

 1 parseint("123");//123
 2 parseint("-123");//-123
 3 parseint(123.123);//123
 4 parseint("    123");//123
 5 parseint("123abc");//123
 6 parseint("abc123");//nan
 7 parseint(true);//nan
 8 parseint(undefined);//nan
 9 parseint(unll);//nan
10 parseint("");//nan
11 parseint(110,2);//6
12 parseint(110,16);//272

         3、parsefloat()

              接受一个参数,并把它转换成小数。如果正负号是第一个非空字符,那么可以识别正负号。和parseint唯一不同的是,它可以识别第一次出现的小数点。

1 parsefloat("123.123");//123.123
2 parsefloat("123.1.2.3");//123.1
3 parsefloat("123.123abc");//123.123

         4、tostring()

              用需要被转换成字符串的值调用tostring()方法,格式:test.tostring(),注意:数字不能直接调用,需要把数字赋值给变量调用。tostring()方法的返回值都是字符串类型。

              在转换数字时,可以接受一个数字类型作为参数,参数规定了转换后结果的进制。其他时候传参无效。

1 var num = 10;
2 var a = num.tostring();//"10"
3 var b = num.tostring(2);//"1010"
4 var c = num.tostring(8);//"12"
5 var d = num.tostring(16);//"a"

         5、string()

              接受一个参数,将它转换成字符串。任何东西传进去都能的到字符串类型的返回值。

1 string(123);//"123"
2 string(123.123);//"123.123"
3 string(undefined);//"undefined"
4 string(null);//"null"
5 string(true);//"true"

         6、boolean()

              除undefined、null、0、nan、“”(空串)、false转换成false外,其他任何东西都被转成true。

1 boolean(undefined);//false
2 boolean(null);//false
3 boolean(0);//false
4 boolean(nan);//false
5 boolean("");//false
6 boolean(false);//false

 

二 隐式类型转换

  1、isnan()

    接受一个参数,判断参数是否是数字,是则返回false,否则返回ture。

    会触发隐式类型转换,先调用number()把参数转换成数字类型。

1 isnan(123);//false
2 isnan("123");//false
3 isnan("");//false
4 isnan("abc");true

       2、++/--(自增自减)和+/-(正负)

                   会触发隐式类型转换,先调用number()把操作数转换成数字类型。

1 var num = "123";
2 num ++;//123
3 console.log(num);//124

       3、+(数字和字符串相加时)

                   会触发隐式类型转换,先调用string()把操作数转换成字符串类型。

1 var num = 12;
2 console.log("i'm " + num + "years old.");//"i'm 12 years old"
3 console.log(num + "12");//"1212"

       4、-、*、/、%

    会触发隐式类型转换,先调用number()把操作数转换成数字类型。

1 var num = 12;
2 console.log(num - 1);//11
3 console.log(num * 1);//12
4 console.log(num / 1);//12
5 console.log(num % 1);//0

       5、&&、||、!

    会触发隐式类型转换,调用boolean()把每个操作数转换成布尔类型。

1 123 && "abc";//"abc"
2 0 && "abc";//0
3 123 || "abc";//123
4 0 || undefined;//undefined
5 !0;//true
6 !1;//false

  6、>、<、<=、>=、==、!=(数字和字符串比较时)

    会触发隐式类型转换,先调用number()把操作数转换成数字类型。

1 123 > "122";//true
2 123 < "124";//true
3 123 >= "123";//true
4 123 <= "123";//true
5 123 == "123";//true
6 123 != "123";//false

 

最后有两个特别的:undefined == null 返回true;nan == nan 返回false。另外没在做加法(+)运算时字符串优先,在做其他数学计算时,数字优先。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网