类型转换相关问题

本文内容整理于慕课网视频教程

类型转换
数据类型

最新的ECMAScript标准定义了7种数据类型

  • 原始类型  Boolean Null Undefined Number String Symbol(ES6中新增)
  • 对象  Object
类型转换:显式类型转换和隐式类型转换
  • 显示类型转换
    • Number函数
      • 原始类型转换
        • 数值:转换后还是原来的值。
        • 字符串:如果可以被解析为数值,则转换为相应的数值,否则得到NaN。空字符串转为0。
        • 布尔值:true转成1,false转成0。
        • undefined:转成NaN。
        • null:转成0。
      • 对象类型转换
        • 先调用对象自身的valueOf方法,如果方法返回原始类型的值(数值、字符串和布尔值),则直接对该值使用Number方法,不再进行后续步骤。
        • 如果valueOf方法返回复合类型的值,再调用对象自身的toString方法,如果toString方法返回原始类型的值,则对该值使用Number方法,不再进行后续步骤。
        • 如果toString方法返回的是复合类型的值,则报错。
    • String函数
      • 原始类型转换
        • 数值:转为相应的字符串。
        • 字符串:还是原来的值
        • 布尔值:true转成"true",false转成"false"。
        • undefined:转成"undefined"。
        • null:转成"null"。
      • 对象类型转换
        • 先调toString方法,如果toString方法返回原始类型的值,则对该值使用String方法,不再进行后续步骤。
        • 如果toString方法返回复合类型的值,再调用valueOf方法,如果valueOf方法返回原始类型的值,则对该值使用String方法,不再进行后续步骤。
        • 如果valueOf方法返回的是复合类型的值,则报错。
    • Boolean函数
      • 原始类型转换
        • undefined
        • null
        • -0           左边这些全都为false,除这些以外的一律为true
        • +0
        • NaN
        • ‘’(空字符串)
  • 隐式类型转换(和显式类似,只不过是在后台进行的)
    • 四则运算
    • 判断语句
    • Native调用
常见题目
  • []+[] // “”(空字符串)
  • []+{} // “[object Object]”
  • {}+[] // 0
  • {}+{} // Chrome:"[object object] [object object]" Firefox:NaN
  • true+true // 2
  • 1+{a:1} // “1[object Object]”
typeof

这部分知识在其他地方有整理。变量的类型和计算相关知识部分整理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值