参见英文答案 > Why is [1,2] + [3,4] = “1,23,4” in JavaScript?13个
var array = [1,2,4];

array+1  //gives '1,41'.

谁能解释这种行为?

解决方法

Can anyone explain this behavIoUr?

这个答案试图从规范的角度解释这种行为.

根据spec,在运行时评估期间,两个表达式(左和右)都转换为它们的原始值.

  1. Let lprim be ToPrimitive(lval).
  2. Let rprim be ToPrimitive(rval).

toPrimitive尝试将提示:数字(因为在算术评估期间调用)传递给OrdinaryToPrimitive

  1. If hint is “string”,then
    a. Let methodNames be «”toString”,“valueOf”».
  2. Else,
    b. Let methodNames be «”valueOf”,“toString”». //this gets invoked

由于其中一个值通过上面的4a)转换为字符串,因此会发生字符串连接.

于是

[1,4] 1 => [1,4] .toString()“1”=> “1,4”“1”=> (最后)“1,41”

javascript – 为什么在数字中添加数组会返回一个字符串?的更多相关文章

  1. JavaScript中toString()方法的使用详解

    这篇文章主要介绍了JavaScript中toString()方法的使用详解,是JS入门学习中的基础知识,需要的朋友可以参考下

  2. js中toString方法3个作用

    这篇文章主要给大家分享了js中toString方法的3个作用,文章围绕js中toString方法的相关资料展开全文内容,需要的小伙伴可以参考一下,希望对你的学习有所帮助

  3. JavaScript中用toString()方法返回时间为字符串

    这篇文章主要介绍了JavaScript中用toString()方法返回时间为字符串的方法,是JS入门学习中的基础知识,需要的朋友可以参考下

  4. 如何检查一个对象是否在PHP中实现 – > __ toString()?

    有没有看到一个对象是否专门实现–>__toString?

  5. zend-framework – Zend_Date :: toString()输出错误的年份.我的代码中的错误,还是Zend_Date?

    我正在使用Zend_Date设置并获得年份,但它没有被设置为正确的年份.我把这一年定为2010年,并将年份作为2009年返回.我做错了什么?必须正确设置年份,因为获取日期的部分日期有效:解:好吧,我让它工作……你有你使用小写:yyyy>YYYY代表ISOYear.2010-01-03是第53周,ISO年份的第7天>yyyy代表实际日历年.我也遇到过这个问题.在Zend_Date类中,’YYYY’表示’ISO年’的4位数表示,其中’yyyy’表示’年’的4位数表示.

  6. zend-framework输出Zend_Db_Table的select()语句生成的查询

    我想输出由Zend_Db_Table的select()语句生成的查询来测试porposes,但我不知道如何.这其实很简单.select对象实现了toString方法.要么

  7. php – Laravel Response内容必须是实现__toString()的字符串或对象,给出“object”

    我想运行技能功能,但我不能.Route.PHPuser.PHP的Skills.PHP我想进入/设置页面我有“响应内容必须是实现__toString()的字符串或对象,”对象“给出.”错误.我尝试在路由中添加dd()函数的返回,我看到所有JSON数据但是$skills->get(),$skill->set()当时没有工作.编辑:Skills.PHP当你这样做您正在返回Relation定义对象,该对象未实现__toString()方法.返回相关对象需要的是这将返回一个包含相关技能的Collection对象–这

  8. 我们在哪里和为什么在PHP中使用__toString()?

    我明白它是如何工作的,但为什么我们会用这个呢?我们不能使用任何其他公共方法输出任何文本?为什么我们需要像这样的魔法?

  9. php – __toString()必须返回一个字符串值

    有人能告诉我我做错了什么吗?只是意味着__toString()的返回值必须是数据类型字符串的值.如果您的示例中的$users_class不是字符串值,则必须在返回之前将其转换为字符串.但是在阅读上面的例子时,我觉得var$users_class可能还没有被初始化.在这种情况下,将方法__toString()更改为:要使上述代码正常工作,您还需要对smarty代码进行更改.删除value=attribute值周围的双引号.

  10. wpf – 如何将System.Windows.Media.Color对象序列化到sRGB字符串?

    我需要将WPF应用程序中使用的颜色序列化到数据库.我想使用sRGB的值,因为他们比较熟悉我们过去几年在Web开发中花费的时间.如何从System.Windows.Media.Color对象获取ARGB字符串(如#FFFFFFFF)?更新:我被MSDN上的文档误导了.正如@Kris在下面所述,ToString()方法的文档是不正确的.虽然它表示ToString()“使用ScRGB通道创建颜色的字符串

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部