强制类型转换

Author Avatar
Ninefire 6月 08, 2018
  • 在其它设备中阅读本文章

强制类型转换
指的是将一个数据类型强制转换为其他的数据类型。
类型转换主要指,将其他数据类型转换为

  • String
  • Number
  • Boolean

转换为String

方式一:

  • 调用被转换数据类型的toString()方法
    该方法不会影响原变量的值,它会将转换的结果返回。
    注意:nullundefined这两个值没有toString()方法。
var a = 123;
//调用a的toString()方法,并将返回结果赋值给变量b
var b = a.toString(string);

方式二:

  • 调用String()函数,并将被转换数据作为参数传递给函数
    对于Number和Boolean实际上依然是调用的toString()方法,但对于nullundefined就有所不同,它会将null直接转换为"null",将undefined直接转换为"undefined"
var a =123;
//将a作为参数并调用String()函数
a = String(a); //将转换结果赋值给a

调用xxxyyy()方法,就是xxx.yyy();
调用zzz()函数,就是zzz();


转换为Number

方式一:

  • 调用Number()函数,并将被转换数据作为参数传递给函数
    • String –> Number
      • 如果是纯数字的字符串,则直接将其转换为数字
      • 如果字符串中有非数字的内容,则转换为NaN
      • 如果字符串是一个空串或者只有空格的串,则转换为0
    • Boolean –> Number
      • true转换为1
      • false转换为0
    • Null –> Number
      • 结果为0
    • Undefined –> Number
      • 结果为NaN
var a = "123";
//将a作为参数并调用Number()函数
a = Number(a); //将转换结果赋值给a

方式二:
这种方式专门用来对付字符串。

  • 调用parseInt()函数
    把字符串转换为整数。
    该函数可以将一个字符串中有效的整数内容取出,然后转换为Number。
  • 调用parseFloat()函数
    把字符串转换为浮点数。
    该函数可以将一个字符串中有效的浮点数内容取出,然后转换为Number。

如果对非String使用parseInt()parseFloat()函数,它会将其先转换为String再进行操作。

var a = "200px";
//将a作为参数并调用parseInt()函数
a = parseInt(a); //将转换结果赋值给a

var b = "3.1415926 cm";
b = parseInt(b);

var c = "3.1415926 cm"
c = parseFloat(c);

var d = "123.456.789.abc"
d = parseFloat(d);

var e = true;
e = parseInt(e);
结果:
a = 200
b = 3
c = 3.1415926
d = 123.456
e = NaN

转换为Boolean

  • 调用Boolean()函数
    • Number –> Boolean
      除了0NaNfalse,其余的都是true
    • String –> Boolean
      除了空串是false,其余的都是true
    • Null和Undefined都会转换为false
    • Object会转换为true
var a = 123;
a = Boolean(a);

var b = -456;
b = Boolean(b);

var c = 0;
c = Boolean(c);

var d = null;
d = Boolean(d);

拓展

JS中其他进制的表示

  • 0x开头表示十六进制数
    例:0xff0x100xcafe
  • 0开头表示八进制数
    例:070022065535
  • 0b开头表示二进制数
    例:0b110b10010b10100101101
    注意:不是所有浏览器都支持。

注意以下情况:

var a = "070"
a = parseInt(a);

070这种字符串,有些浏览器会当作八进制解析,有些会当作十进制解析,那么可以在parseInt()中传递第二个参数,来指定数字的进制,以解决浏览器不统一的问题。
例:a = parseInt(a, 10);

如发现错误请联系我,谢谢你。
本文链接:http://ninefire.tk/JavaScript.basics/06.html