ECMAScript 之类型转换

ECMAScript中类型转换还是相对比较简单的,毕竟基础类型少嘛。下面我们看下常用的类型转换。

转换为字符串
Boolean,String,Number都有相应的toString()方法进行转化。

示例:

var intTmp = 100;
console.log(intTmp);
console.log(intTmp.toString(16));
console.log(intTmp.toString(8));
console.log(intTmp.toString(2));

var stringTmp = "test strings";
console.log(stringTmp);

var booleanTmp = false;
console.log(booleanTmp.toString());

输出:

qml: 100
qml: 64
qml: 144
qml: 1100100
qml: test strings
qml: false

上面的例子简单的很,大家一看就懂。
这里说明一下Number类型的值转换为字符串的时候可以指定以什么格式转换。如果没有指定基数,那么会使用默认的十进制转化。上面的例子分别使用了16进制,8进制和2进制作为转换基数得到的字符串。

转换为数字
首先,这里先提前说明一点,接下来要介绍的两个函数都是针对字符串的。如果你使用这两个函数来操作其他类型,那么结果会返回NaN。

parseInt
该函数将值转换为整型然后返回转换结果。该函数会扫描字符串直至遇到第一个非数字字符时停止,然后将扫描到的字符串转化为整型值返回。

示例:

 console.log(parseInt("2015-08-03"));

输出:

qml: 2015

parseFloat

该函数将值转换为浮点型然后返回转换结果。该函数会扫描字符串直至遇到第一个小数点,然后知道遇到非数字字符时停止,然后将扫描到的字符串转化为浮点型返回。

扫描二维码关注公众号,回复: 1752947 查看本文章

在这里可能在小数点前面没有数字,那么该函数会默认在前面加0处理。

示例:

  console.log(parseFloat("3.10"));
  console.log(parseFloat("3.102.23"));
  console.log(parseFloat("3.102.23hello"));
  console.log(parseFloat(".102.23hello"));
  console.log(parseFloat("hello3.102.23hello"));

输出:

qml: 2015
qml: 3.1
qml: 3.102
qml: 3.102
qml: 0.102
qml: NaN

相信大家也都看到了,在转化的时候如果最前面是字符串,那么该函数就罢工了,直接返回NaN,这里大家要留意一下了。

强制类型转换

ECMAScript中强制转换有三种类型:
1.Boolean(value)–将value转化为Boolean
2.Number(value)–将value转化为数字
3.String(value)–将value转化为字符串

Boolean(value)

当被转换的值为非空字符串,非0数字或者是对象的时候,返回true。
当被转换的值为空字符串,0或者undefined以及null,返回false。

示例:

console.log(Boolean("null"));
console.log(Boolean(10));
console.log(Boolean(-1));
console.log(Boolean(0));
console.log(Boolean(""));
console.log(Boolean(null));
console.log(Boolean(new Array()));

输出:

qml: true
qml: true
qml: true
qml: false
qml: false
qml: false
qml: true

Number(value)
Number()的强制转换其本质还是调用上面介绍过的parseInt和parseFloat两个函数。
需要注意的一点是Number()转化的是整个value值,不会去在字符串里面查找无效字符串进行截取然后进行转换。

示例:

console.log(Number("2018"));
console.log(Number("2018.02"));
console.log(Number("2018-02-12"));
console.log(Number("h2018"));
console.log(Number("2018h"));

输出:

qml: 2018
qml: 2018.02
qml: NaN
qml: NaN
qml: NaN

String(value)

这个函数可以说是万能的,它可以把任何值转换为字符串。它和toString()方法的区别在于,如果对空值(null,undefined)使用toString(),程序会报错.

但是对于String()来说,这不是个问题啊。

实例:

console.log(String(null));
console.log(String(15));
console.log(String(15.23));
console.log(String(NaN));
console.log(String("25-45daa"));

var tmp;
console.log(tmp.toString());

var tmp = null;
console.log(tmp.toString());

输出:

qml: null
qml: 15
qml: 15.23
qml: NaN
qml: 25-45daa
qrc:/main.qml:56: TypeError: Cannot call method 'toString' of undefined

qrc:/main.qml:57: TypeError: Cannot call method 'toString' of null

猜你喜欢

转载自blog.csdn.net/qingyulove/article/details/79585360