强制类型转换

117 阅读2分钟

强制类型转换

储备知识

valueOf()

对象返回值
Array数组的元素被转换为字符串,这些字符串由逗号分隔,连接在一起。其操作与 Array.toString 和 Array.join 方法相同。
BooleanBoolean 值。
Date存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。
Function函数本身。
Number数字值。
Object对象本身。这是默认情况。
String字符串值。

toString()

对象操作
Array将 Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来。
Boolean如果 Boolean 值是 true,则返回 “true”。否则,返回 “false”。
Date返回日期的文字表示法。
Error返回一个包含相关错误信息的字符串。
Function返回如下格式的字符串,其中 functionname 是被调用 toString 方法函数的名称:function functionname( )
Number返回数字的文字表示。
String返回 String 对象的值。
默认返回 “[object objectname]”,其中 objectname 是对象类型的名称。

正文开始

Number

类型返回值
booleantrue-1/false-0
number本身
string1、如果字符串中只包含数字,则将其转换为十进制(忽略前导0) 2、如果字符串中包含有效的浮点格式,将其转换为浮点数值(忽略前导0) 3、如果是空字符串,将其转换为0 4、如果字符串中包含非以上格式,则将其转换为NaN
object1、调用对象的valueOf()方法,如果返回原始类型,按照上述原始类型Number()返回;如返回非原始类型,则再执行toString(),原始类型则使用Number()返回结果。否则,抛出错误 Uncaught TypeError: Cannot convert object to primitive value

String

标题
原始类型字符串
对象1、调用对象的toString()方法,如果返回原始类型,按照上述原始类型String()返回;如返回非原始类型,则再执行Number(),原始类型则使用String()返回结果。否则,抛出错误 Uncaught TypeError: Cannot convert object to primitive value

练习题

1,{} + '' 2, {} + 0 3, [] + [] 4, [] + {} 5, {} + [] 6, {} + {} 7、[] == ![] 8、{} == ! {} '5' + 1 // '51' '5' + true // "5true" '5' + false // "5false" '5' + {} // "5[object Object]" '5' + [] // "5" '5' + function (){} // "5function (){}" '5' + undefined // "5undefined" '5' + null // "5null" null + [] ? null + {} ? null + funciton() {}