js笔记(强制类型转换)
这篇随笔记录一下js中数据的各种类型转换的规则,虽然很基础,但是重新过一遍会发现有些规范还是挺意想不到的 首先介绍一下ToString, ToNumber, ToBoolean 的转换规则 1、ToString 规则1:null 转换为 “null” , undefined 转换为 “undefined” , true 转换为 “true” ; 规则2:普通对象,除非自定义,否则用 toString(); 数组的toString()方法,先把所有单元字符串化,然后再用“,”连接;[1,2,3,4] // “1,2,3,4”; 2、ToNumber 规则1:布尔值 true 转换为 1, false 转换为 0; undefined 转换为 NaN; null 转换为 0;字符串处理失败时返回NaN; 规则2:以 0开头地十六进制数会被当成十进制; 规则3:对象会先被处理成相应地基本类型值,再按照值类型做相应处理; 对象做ToPrimitive操作规则:先valueOf(), 如果valueOf的结果不是基本类型,再进行 toString() ;如果均不返回基本类型,则报TypeError; 使用Object.create(null) 创建的对象,无valueOf 跟 toString 方法,故不能被强制类型转换 规则4