重温前端之类型判断与类型转化

类型判断

typeof

  • 用法:typeof(xxx)
  • 返回值:返回除null外的 7 种基本类型,外加function共 8 种
  • 特殊点:null被 js 判断为object

instanceof

  • 用法:xxx instanceof OBJ
  • 返回值:返回目标对象(左)的原型链上是否存在 OBJ(右),true/false
  • 特殊点:只用于检验对象,检验简单类型时无效

Object.prototype.toString.apply()

  • 用法:Object.prototype.toString.apply(xxx)
  • 返回值:基本数据类型加 js 中的原生对象
  • 特殊点:不能检测自定义的对象,自定义的 class 将返回 function

类型转化

转为Number

  • string
>  若字符串整体可以识别为一个数字,则返回该识别
>  若不能识别为数字,则返回 `NaN`
>  可以识别 `Infinity`
>  字符串为空或者为空字符串时,返回 0
>  使用`parseInt()`进行转化时,直接从开头开始截取能识别的字符串,直到不能识别为止
  • boolean中,false返回0true返回1
  • null返回0
  • undefined返回NaN
  • Object在下方单独说明

转化为String

  • numberbooleannullundefined将原封不动的转化为带引号的字符串
  • Object在下方单独说明

转化为Boolean

  • 0undefinednull""NaN 将被转为 false,其他均为 true

转化为对象

  • nullundefined进行转化将抛出错误
  • 其他型进行转化会返回包装后的对象

Object转化为String/Number

转为 String:toString()

  • toString()流程:如果它返回一个原始值,将这个原始值转换为字符串返回,若不为原始值,则以相同流程执行 valueOf(),若都不为原始值,抛出错误
  • Object返回"[object Object]"
  • Array返回this.join()的值
  • Function返回整个函数字符串

转为 Number:valueOf()

  • valueOf()流程:如果它返回一个原始值,将这个原始值转换为字符串返回,若不为原始值,则以相同流程执行 toString(),若都不为原始值,抛出错误
  • Object返回对象本身
  • Array返回数组本身
  • Function返回方法本身

隐式类型转化

算数运算符(+ - * / ++ %...)

  • +时,若两边存在字符串,则另一个也会转化为字符串,进行字符串拼接
  • 其他情况,均转为Number

关系运算符(> < == !=...)

  • ===/!==时,不进行转化
  • !时,转化为boolean
  • 其他情况,均转为Number
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值