linche0859
2/25/2020 - 2:06 AM

隱含轉型

加號

  • 純值(字串、物件類型外),以 Number 做轉型
運算式結果
1 + '1''11'
1 + true2
1 + new Number(1)2
1 + null1
Number(null)0
  • 物件類型,以 String 做轉型
運算式結果
1 + [1]'11'
1 + new Number(1)'1[object Object]'

減、乘、除

  • 都以 Number 轉型
運算式結果
1 - '1'0
1 - true0
1 - new Number(1)0
1 - null0
1 - undefinedNaN
2 * '1'2
Number(null)0
Number(undefined)NaN
  • 物件類型一樣使用 Number 轉型
運算式結果
1 - []1
1 - [1]0
1 - ['a']NaN
1 - {}NaN
2 * [1]2
2 * ['1']2
2 * {}NaN
Number({})NaN