栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么在JavaScript中[1,2] + [3,4] =“ 1,23,4”?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么在JavaScript中[1,2] + [3,4] =“ 1,23,4”?

+
操作者 没有为数组定义

发生的事情是Javascript 将数组转换为字符串 并将其连接起来。

更新资料

由于这个问题以及我的回答引起了人们的广泛关注,因此我认为对操作员的总体行为进行 概述 也将是有用且相关的

+

因此,就在这里。

除E4X和特定于实现的内容外,Javascript(自ES5起)具有 6种 内置数据类型:

  1. Undefined
  2. Null
  3. Boolean
  4. Number
  5. String
  6. Objec

请注意,尽管对于Null和可调用对象而言,

typeof
返回值有些混乱,但Null实际上不是对象,严格来说,在符合规范的Javascript实现中,所有函数都被视为对象。
object``function

没错-Javascript本身 没有原始数组 ;只有

Array
使用某种语法糖来调用Object的实例才能减轻痛苦。

添加更多的混乱,包装等实体

newNumber(5)
newBoolean(true)
并且
newString("abc")
是所有
object
类型,而不是数字,布尔值或字符串正如人们所预料。但是对于算术运算符
Number
,其
Boolean
行为与数字相同。

容易吧?有了这些,我们就可以继续进行概述了。

+
按操作数类型的不同结果类型

 || undefined | null   | boolean | number | string | object |========================================================================= undefined  || number    | number | number  | number | string | string |  null       || number    | number | number  | number | string | string |  boolean    || number    | number | number  | number | string | string |  number     || number    | number | number  | number | string | string |  string     || string    | string | string  | string | string | string |  object     || string    | string | string  | string | string | string |

*适用于Chrome13,FF6,Opera11和IE9。读者可以自己检查其他浏览器和版本。

注意:
如CMS所指出的那样,对于某些对象,例如和和自定义对象

Number
,操作符不一定会产生字符串结果。它可以根据对象到原始转换的实现而有所不同。例如评估产品a,评估产品a 。
Boolean``+``var o = { valueOf:function () { return 4; } };``o +2;``6``number``o + '2'``'42'``string

要查看概述表是如何生成的,请访问http://jsfiddle.net/1obxuc7m/



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411336.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号