【发布时间】:2013-04-06 10:52:33
【问题描述】:
第一部分:
因为当您添加两个数组时,一切都按预期工作:
[] + [] //output:''
添加一个数组和一个对象也符合我们的预期:
[] + {}
output:'[object Object]'
{} + {} 在 JavaScript 中是 NaN ?
这是意想不到的结果,那么这背后的原因是什么?
第二部分:
无前缀0的字符串比较中,3大于12:
"3" > "12"
: true
使用填充,一切正常:
"03" > "12"
: false
字符串比较时必须使用前缀0吗?添加前缀0的原因是什么?
【问题讨论】:
-
[] + [] == ''适合您吗?你的逻辑是什么? -
@SergioTulentsev:数组的字符串表示形式是由逗号连接的项目的字符串表示形式。如果它是一个空数组,它的字符串表示将是空的,如果你连接两个空字符串,你会得到一个空字符串。
-
每个问题你应该发布一个问题。
-
@SergioTulentsev JavaScript 不支持添加对象。他们首先通过
ToPrimitive(),然后+进行相应的操作(字符串、数字等)。所以,[] + []变成了'' + ''。 -
也可以尝试比较:
+"3" > +"12"
标签: javascript