博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS-详解算数运算符"+"
阅读量:4625 次
发布时间:2019-06-09

本文共 966 字,大约阅读时间需要 3 分钟。

   二元加法运算符“+”可以对两个数字做加法,也可以做字符串连接操作:

  当两个操作数都是数字或都是字符串的时候,计算结果是显而易见的。然而对于其他情况来说,则要进行一些必要的类型转换,并且运算符的行为依赖于类型转换的结果。加号的转换规则优先考虑字符串连接,如果其中一个操作数是字符串或者转换为字符串的对象,另外一个操作数将会转换为字符串,加法将进行字符串的连接操作。如果两个操作数都不是类字符串(string-like)的,那么都将进行算术加法运算。 从技术上讲,加法操作符的行为表现为: ·如果其中一个操作数是对象,则对象会遵循对象到原始值的转换规则转换为原始类值,在进行了对象到原始值的转换后,如果其中一个操作数是字符串的话,另一个操作数也会转换为字符串,然后进行字符串连接。 ·否则,两个操作数都将转换为数字(或者NaN),然后进行加法操作。

  这里有一些例子:

1 + 2 // => 3: 加法"1" + "2" // => "12": 字符串连接"1" + 2 // => "12": 数字转换为字符串后进行字符串连接1 + {} // => "1[object Object]": 对象转换为字符串后进行字符串连接true + true // => 2: 布尔值转换为数字后做加法2 + null // => 2: null转换为0后做加法2 + undefined// => NaN: undefined转换为NaN后做加法

  最后,需要特别注意的是,当加号运算符和字符串和数字一起使用时,需要考虑加法的结合性的对运算顺序的影响。也就是说,运算结果是依赖于运算符的运算顺序的,比如: 

1 + 2 + " blind mice"; // => "3 blind mice"1 +(2 + " blind mice"); // => "12 blind mice"

  第一行没有圆括号,“+”运算符具有从左至右的结合性,因此两个数字首先进行加法计算,计算结果和字符串进行连接。在第二行中,圆括号改变了运算顺序:数字2和字符串连接,生成一个新字符串,然后数字1和这个新字符串再次连接,生成了最终结果。

转载于:https://www.cnblogs.com/superlizhao/p/8439541.html

你可能感兴趣的文章
WebService原理
查看>>
【Unity 3D】学习笔记三十七:物理引擎——碰撞与休眠
查看>>
js动态删除div元素
查看>>
计算机网络中的TCP/IP模型
查看>>
spring mvc 自定义Handlermapping
查看>>
JS验证密码安全级别
查看>>
Cookie是可以覆盖的,如果重复写入同名的Cookie,那么将会覆盖之前的Cookie。
查看>>
Django Models的数据类型
查看>>
博客之初体验-----python初了解
查看>>
jquery.fileupload插件 ie9下不支持上传
查看>>
6.1 HTML5的框架
查看>>
Nginx的500,502,504错误解决方法
查看>>
SAP MM MM17里不能修改物料主数据'Purchasing Value Key'字段值?
查看>>
C#中数组、ArrayList和List三者的区别
查看>>
MVC4 WEBAPI(一)使用概述
查看>>
C++ 概念易错点
查看>>
poj2114 Boatherds
查看>>
maven学习(上)- 基本入门
查看>>
20165231 实验一 Java开发环境的熟悉
查看>>
Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)
查看>>