JavaScript中的'2'+'2' - '2'= 20怎么样?

Zay*_*rai 9 javascript string math

我只是随机玩JavaScript.'2'+'2'-'2'我给它的输入.

并且输出令人惊讶20.

console.log('2'+'2'-'2');
Run Code Online (Sandbox Code Playgroud)

现在我没有得到它.

有人向我解释为什么会这样?怎么输出这个等于20

Ama*_*dan 25

+是串联和加法.如果任何参数不是数字,那么它就是连接.因此,'2' + '2''22'-就像"foo" + "bar""foobar",就如同3 + {}"3[object Object]".

-只是减法.无论它的论点是什么,它们都被强迫数字.因此,'22' - '2'评估为22 - 2,即20.