一、二元算数运算符
共有五种算术运算符:
- 加法运算符:+
- 减法运算符:-
- 乘法运算符:*
- 除法运算符:/
- 取模运算符:%
注意:
1、除了字符串的加法运算之外 ,其余类型的数据进行各种算术运算时,全都转换为Number类型,再进行运算。
2、任何值与NaN运算结果都为NaN。
1. 加法运算
+ :加法运算符,可以对两个值进行加法运算,并返回结果。运算时,将非数值转换为Number,在进行运算。
//Number与Number相加
//结果:3 number
var a = 1 + 2;
document.write(a+' '+typeof a);
//Number与String
//结果:1hello string
a = 1 + "hello"; //将1转换为String,即为字符串'1'
document.write(a+' '+typeof a);
//Number与Boolean
//结果:2 number
a = 1 + true; //将true转换为Number,即为1
document.write(a+' '+typeof a);
//Number和null
//结果:1 number
a = 1 + null; //将null转换为Number,即为0
document.write(a+' '+typeof a);
//Number和undefined
//结果:NaN number
a = 1 + undefined; //将undefined转换为Number,即为NaN
document.write(a+' '+typeof a);
特殊情况
- 字符串与字符串相加时,对两个字符串进行拼接。
- 其他任意值与字符串相加时,将该值转换为字符串,再进行字符串拼接。
利用这一点,可以利用加法运算做隐式数据转换:为任意值 + ’ '(加空串),可将其转换为String。
// 以Number为例,为 b+''(加空串),将其转换为了String,其他类型类似。
var b = 2;
document.write(b+' '+typeof b + '<br>');
b = 2 + ''; //为 b 加上一个空串
document.write(b+' '+typeof b);
//结果:
2 number
2 string
2.减法运算
- : 减法运算符,可以对两个值进行减法运算,非数值进行减法运算时,先将其转换为Number,在进行运算。
var c;
//Number与Number
//结果:5 number
c = 10 - 5;
document.write(c+' '+typeof c);
// Number与String
// 结果:NaN number
c = 10 - "hello";//将"hello"转换为Number,即为NaN
document.write(c+' '+typeof c);
//结果:5 number
c = 10 - "5"; //将"5"转换为Number,即为数字5
document.write(c+' '+typeof c);
//Number与Boolean
//结果:9 number
c = 10 - true; //将true转换为Number,即为1
document.write(c+' '+typeof c);
//Number与null
//结果:10 number
c = 10 - null; //将null转换为Number,即为0
document.write(c+' '+typeof c);
//Number与null
//结果:NaN number
c = 10 - undefined; //将undefined驻阿努捍卫Number,即为NaN
document.write(c+' '+typeof c);
3.乘法运算
* : 乘法运算符,可以对两个值进行乘法运算,非数值进行乘法运算时,先将其转换为Number,在进行运算。
4. 除法运算
/ : 除法运算符,可以对两个值进行除法运算,非数值进行除法运算时,先将其转换为Number,在进行运算。
5.取模运算
% : 取模运算符,可以对两个值进行取模运算,非数值进行取模运算时,先将其转换为Number,在进行运算。
在进行 - 、*、/ 运算时,会将运算值转换为Number类型,所以可以利用这几种运算为数据做隐式数据转换:
为任意值 -0(减0),*1(乘1),/1(除1),即可将它们转换为Number。
二、一元算术运算符
1.正负号
+:正号
- :负号
可以利用正号对非Number类型的数据做数据转换,将其转换为Number。
2.自增与自减
(1)自增
++:自增运算符,可以让变量在原来值的基础上增加1
- 自增有 前++(++a)和后++(a++)
- ++a和a++都可以使原变量的值立即增加1,不同的是:
- ++a的值等于变量的新值,也就是自增后的值
- a++的值等于变量原来的值,也就是自增前的值
(2)自减
- - :自减运算符,可以让变量在原来值的基础上减1
- 自减有 前- -(-- a)和后- -(a-- )
- --a和a--都可以使原变量的值立即减1,不同的是:
- --a的值等于变量的新值,也就是自减后的值
- a--的值等于变量原来的值,也就是自减前的值