js类型转换

[]+{} // '[object Object]'
{}+[] // 0
[]+1 //  '1'
{}+1 // 1
({})+1 // '[object Object]1'

[].valueOf()➡️ [], [].toString()➡️''

{}放在开头会当成代码块,{}+1 {}+[]相当于+1 +[]

({})防止内核将其当作代码块,({}).valueOf()➡️{},({}).toString()➡️'[object Object]'

 

 

 

toPrimitive(input,preferedType?)
    input是输入的值,preferedType是期望转换的类型,他可以是字符串,也可以是数字。

    如果要转换成的类型是number,会执行以下步骤:

     1. 如果input是原始值,直接返回这个值;

     2. 否则,如果input是对象,调用input.valueOf(),如果结果是原始值,返回结果;

     3. 否则,调用input.toString()。如果结果是原始值,返回结果;

     4. 否则,抛出错误。

     如果转换的类型是String,2和3会交换执行,即先执行toString()方法。

    你也可以省略preferedType,此时,日期会被认为是字符串,而其他的值会被当做Number。

上一篇:棋牌麦子问题(BigInteger)


下一篇:vue 简单的状态管理store