Javascript 为什么长度为1的数组的行为类似于脚本中的标量?
例如:Javascript 为什么长度为1的数组的行为类似于脚本中的标量?,javascript,arrays,type-conversion,Javascript,Arrays,Type Conversion,例如: a=[1,2] console.log(a*2);//NaN,这不是Python a=[3]; console.log(a);//数组,如预期:[3] console.log(a*2);//6!这是因为在乘法(*)过程中: console.log(编号([1,2]);//楠 console.log(编号([2]);//2当一个数组位于一个表达式中,其中需要一个基元时,将调用它的toString方法。对于数组,这基本上是arr.join(',')。包含逗号的字符串无法转换为数字: a
a=[1,2]
console.log(a*2);//NaN,这不是Python
a=[3];
console.log(a);//数组,如预期:[3]
console.log(a*2);//6!代码>这是因为在乘法(*
)过程中:
console.log(编号([1,2]);//楠
console.log(编号([2]);//2
当一个数组位于一个表达式中,其中需要一个基元时,将调用它的toString
方法。对于数组,这基本上是arr.join(',')
。包含逗号的字符串无法转换为数字:
a=[1,2]
console.log(a*2);//不起作用
log('1,2'*2)//相同的字符串结果:也不起作用
console.log([1,2].toString()='1,2')代码>它与JavaScript的相同性有关
查看本页以获取完整的文档:
可能会发生很多自动转换:)
下面是一个奇怪/有趣的例子:
console.log([1,2]=='1,2')
您可以在这里找到全面的答案:
事实上,这甚至可以扩展到更多级别:console.log(Number([[2]]]);//2
第一个例子并不奇怪<代码>[1,2]=='1,2'
表示字符串([1,2])=='1,2'
取决于双方的类型。