四、类型转换

原创 smenjyxl 随笔 JS 67阅读 2018-04-18 17:31:13 举报

一、数据类型

解答:最新的ECMAScript标准定义了7中数据类型
原始类型
Boolean 、 Null 、 Undefined 、 Number 、 String 、 Symbol(ES6新增类型)
对象
Object

二、显式类型转换

解答:

1. Number函数

原始类型转换
数值:转换后还是原来的值;
字符串:如果可以被解析为数值,则转换为相应的数值,否则得到NaN。空字符串转为0;
布尔值:true转成1,false转成0;
undefined: 转成NaN;
null: 转成0;
对象类型转换
先调用对象自身的valueOf方法,如果该方法返回原始类型的值(数值、字符串和布尔值),则直接对该值使用Number方法,不再进行后续步骤。

如果valueOf方法返回复合类型的值,再调用对象自身的toString方法,如果toString方法返回原始类型的值,则对该值使用Number方法,不再进行后续步骤。

如果toString方法返回的是复合类型值,则报错。

2. String函数

原始类型转换
数值:转为相应的字符串;
字符串:转换后还是原来的值;
布尔值:true转成“true”,false转成“false”;
undefined: 转成“undefined”;
null: 转成“null”;
对象类型转换
先调用toString方法,如果toString方法返回原始类型的值(数值、字符串和布尔值),则直接对该值使用String方法,不再进行以下步骤。

如果toString方法返回复合类型的值,再调用valueOf方法,如果valueOf方法返回原始类型的值,则对该值使用String方法,不再进行以下步骤。

如果valueOf方法返回的是复合类型值,则报错。

3. Boolean函数

原始类型转换
undefined 、 null 、 -0 、 +0 、 NaN 、''(空字符串)这些转换之后通通都是false;其他的一律为true;

三、隐式类型转换

解答:以下情况程序类型转换

1. 四则运算

加、减、乘、除

2. 判断语句

if、三目运算符

3. Native调用

console.log、alert 他们调用的都是string类型

https://coding.imooc.com/learn/questiondetail/47084.html
https://segmentfault.com/a/1190000008038678

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复