Javascript运算符
2016-03-02 20:11
399 查看
基本的算数运算符是*(乘法)、/(除法)、%(除法)、%(求余)、+(加法)和-(减法)
1、除法运算(/):在js中所有的数字都是浮点型,所以除法运算/的结果也是浮点型,例如5/2的结果是2.5而不是2,这是js和其他区分整型和浮点型数字编程语言的不同。
另外要注意的是:
5/0 //结果为正无穷大
-5/0 //结果为负无穷大
0/0 //结果为NaN
所有这些运算的结果都不会出错。
2、求余运算(%):运算符(%)计算第一个操作数对第二个操作数的模(即第一个操作数除以第二个操作数的余数),结果的符号和第一个操作数(即被除数)的符号保持一致
例如:
5%2=1
-5%2=-1
求余运算的操作数通常都是整数,但也适用于浮点数,例如:6.5%2=0.5
3、“+”运算符:二元加法运算符“+”可以对两个数字做加法,也可以做字符串连接操作:
1+2 //3
“he”+“llo” //”hello”
“1”+“2” //“12”
①当两个操作数都为数字时,“+”结果还是数字
②当两个操作数都为字符串时,“+”结果还是字符串
③其他情况则需要进行类型转换,运算符的行为依赖于类型转换的结果。加号的转换规则优先考虑字符串的类型转换,如果其中一个操作数为字符串或者转换为字符串的对象,则另外一个操作数也会转换为字符串,加法将进行字符串的连接操作。如果两个操作数都不是类字符串(string-like),则进行算术加法运算。
从技术上讲,加法操作符的行为表现为:
①如果其中一个操作数是对象,则对象会遵循对象到原始值的转换规则转换为原始类值(js类型转换:/article/5476626.html):日期对象通过toString()方法执行转换,其他对象则通过valueOf()方法执行转换(如果valueOf()方法返回一个原始值的话)。由于多数对象都不具备可用的valueOf()方法,因此它们会通过toString()方法来执行转换。
②在进行了对象到原始值的转换后,如果其中一个操作数是字符串的话,另一个操作数也会转换为字符串,然后进行字符串连接。
③否则,两个操作数都将转换为数字(或者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、除法运算(/):在js中所有的数字都是浮点型,所以除法运算/的结果也是浮点型,例如5/2的结果是2.5而不是2,这是js和其他区分整型和浮点型数字编程语言的不同。
另外要注意的是:
5/0 //结果为正无穷大
-5/0 //结果为负无穷大
0/0 //结果为NaN
所有这些运算的结果都不会出错。
2、求余运算(%):运算符(%)计算第一个操作数对第二个操作数的模(即第一个操作数除以第二个操作数的余数),结果的符号和第一个操作数(即被除数)的符号保持一致
例如:
5%2=1
-5%2=-1
求余运算的操作数通常都是整数,但也适用于浮点数,例如:6.5%2=0.5
3、“+”运算符:二元加法运算符“+”可以对两个数字做加法,也可以做字符串连接操作:
1+2 //3
“he”+“llo” //”hello”
“1”+“2” //“12”
①当两个操作数都为数字时,“+”结果还是数字
②当两个操作数都为字符串时,“+”结果还是字符串
③其他情况则需要进行类型转换,运算符的行为依赖于类型转换的结果。加号的转换规则优先考虑字符串的类型转换,如果其中一个操作数为字符串或者转换为字符串的对象,则另外一个操作数也会转换为字符串,加法将进行字符串的连接操作。如果两个操作数都不是类字符串(string-like),则进行算术加法运算。
从技术上讲,加法操作符的行为表现为:
①如果其中一个操作数是对象,则对象会遵循对象到原始值的转换规则转换为原始类值(js类型转换:/article/5476626.html):日期对象通过toString()方法执行转换,其他对象则通过valueOf()方法执行转换(如果valueOf()方法返回一个原始值的话)。由于多数对象都不具备可用的valueOf()方法,因此它们会通过toString()方法来执行转换。
②在进行了对象到原始值的转换后,如果其中一个操作数是字符串的话,另一个操作数也会转换为字符串,然后进行字符串连接。
③否则,两个操作数都将转换为数字(或者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后做加法
相关文章推荐
- window.onload的意义
- JavaScript模板引擎-artTemplate
- style和className
- Servlet中doGet()方法得到的中文是乱码解决办法
- Valid Anagram--JavaScript
- javascript函数
- valid sudoku--JavaScript
- Chrome 中的 JavaScript 断点设置和调试技巧
- js 传到服务器端时的特殊符号
- 使用jsonpath解析json内容
- js 兼容Firefox与IE的Excel到处
- excel导出js代码
- BZOJ1821 [JSOI2010] Group 部落划分 Group
- 使用JS显示弹出窗口
- jsp导入的包,包里明明有方法,但总是报方法没有定义的错
- 【求助】js到处Excel window.btoa IE 下没有定义
- Js获取当前日期时间及其它操作
- underscore.js 分析 第四天
- JSP你必会的4+9
- JSPath基础用法