你可能需要知道的前端小知识——JavaScript的类型转换

·  阅读 69

类型转换

基本类型转换为对象类型

  • 每一种基本类型(NumberBooleanStringSymbol)在对象中都有对应的类
  • 基本类型在转换成对象时会先生成一个临时对象,然后转换成要转换的类型的对象。建议不要在代码中过多的做此类的转换,根据使用场景,该使用什么类型使用什么类型。
  • 基本类型在对象中对应的类型,都有私有class属性,并且不可更改,通过Object.prototype.toString获取。但是在识别这种类型的时候,要先判断是基本类型还是对象类型。

对象类型转换为基本类型

  • 对象到StringNumber的转换:先转从对象类型转为基本类型,然后在转成Number或者String
  • 从对象类型转为基本类型,一般是尝试调用valueOftoString
  • ES6之后,可以允许对象显式地指定Symbol.toPrimitive覆盖原有的转换

常见的基本类型之间的转换

  • StringToNumber
    • 支持二进制、十进制、八进制、十六进制的转换
    • 支持包含正负号的科学计数法
    • 需要与parseInt/parseFloat区分,parseInt/parseFloat并不适用这个规则,并且参数也不同。

隐式转换

  • ==运算
    • 跨类型的比较运算符,在比较的时候会对对象进行隐式转换,产生不正确的结果。还是显式的转换后用===运算来比较

总结

我知道的JavaScript的类型转换就这些了,有补充或者对JavaScript类型转换有不同想法的,欢迎留言讨论。

分类:
前端
标签:
分类:
前端
标签:
收藏成功!
已添加到「」, 点击更改