❕类型转换
弱类型中,变量没有类型(不涉及存储结构)。好处是文法上很灵活,坏处是让 JavaScript 变量的管理和运行时的类型判断变得复杂。所以要能正确地处理:运行时数据类型的识别 + 类型的正确转换。
“运行时类型识别”是一种独立于语言本身的技术。除了弱类型语言需要之外,强类型语言有时也需要它来处理多态。
表达式和运算符是程序完成计算的基础。类型转换是通过调用对象方法的 valueOf() 或 toString() 来执行的。
- 表达式中(对于对象)的转换规则: - 如果是优先转换为字符串,必定先调用 - toString()方法
- 如果是优先转化为数值,必定先调用 - valueOf()
 
- 强制类型转换 - parseInt(),- parseFloat()
- .toString()
- 对象当函数用 
 
- typeof(当变量没声明时,不报错)- 不足只能区别基本类型(原始值和对象) 
- 对于继承时的类型,需要再配合 - instanceof运算符,- constructor属性- eg. - obj instanceof Iterator
 
 
- 其他语言也或多或少地存在着精度的问题,但是 JavaScript 的问题是非常严重 - 在进行浮点运算前,可以事先确定好问题的精度范围 - Math 的 - floor,- ceil,- round(取整数-正负数的区别-厉害了)
- Number 的 - toFixed(保留 n 位小数)
 
- 消除浮点数误差的常见手段,比如进行精度判断 
 
- 读框架或者库的源码(比较巧妙和有趣的写法) 
Last updated