1 一元运算符
(1)递增++和递减 - -
var box = 100;
++box //box = box + 1 ;
box++ //box= box +1 ;
(2) 前置和后置的区别
前置 运算先累加或者累减再赋值;
后置 先赋值再累加或者累减
var box = 100;
var age = box++ //box = 100+1 赋值给age
var age = ++box // age = box;然后box+1;
(3)其他类型运用一元运算符
字符串类型
A: var box = “89”;
box++ // 对于数字字符串 有隐形的转换功能,自动转化成数字类型
B:var box = “ab”;
box++ // 字符串包含非数字值转换为NaN
布尔类型
var box =false;
box++ //false转换成数值是0,累加1 结果为1;
对象类型
var box = {
toString:function(){ return}
};
box++ //结果为1 不执行toString()或者value() 方法为NaN
(4)一元加减运算符
1.用于类型转换
2.用于算术运算
3.加法用于取整,减法用于取负。
var box = 1;
-box ;
+box;
2.算术运算符
ECMAscript定义了五个算术运算符,加(+)减(-)乘(*)除(/)求模(取余)。
如果在算术运算的值不少数值,那么后台会自动调用number()函数将其转化成数值。
(1) 加法
a如果都是数值
var box = 1+2; //结果为3
var box = 1+NaN //结果为NaN 只要一个数值是NaN 就为NaN
var box = Infinity 加 Infinity //结果为 Infinity
var box = -Infinity 加 - Infinity //结果为 -Infinity
var box = Infinity 加 -Infinity // 结果为 NaN 正无穷和负无穷为非负数
var box = +0 加 +0 ; // 结果为+0
var box = -0 加 -0 ; // 结果为-0
var box = +0 加 -0 ; // 结果为+0
b如果一个操作数是字符串
b1: 如果两个数都是字符串,则讲两个字符串拼接起来
var box = a + b ; // 结果是ab
b2:如果只有一个是字符串,则将不是的字符串变成字符串,再拼接起来
var box = 7 + “9”; // 结果是79
c 如果操作数 是对象和布尔值
调用他们的toString()获得相应的字符串值,再利用相关的字符串值
D 如果是undefined 和 null
则调用string()函数并取得字符串“undefined”和“null”。
(2) 减法
a如果都是数值
var box = 1+2; //结果为3 如果两个操作符都是数值,则执行常规的算术减法操作并返回结果。
var box = 1-NaN //结果为NaN 如果一个操作符是NaN 就为NaN
var box = Infinity 减 Infinity //结果为 NaN
var box = -Infinity减 - Infinity //结果为NaN
var box = Infinity 减 -Infinity // 结果为Infinity
var box =- Infinity 减 Infinity // 结果为-Infinity
var box = +0 减+0 ; // 结果为+0
var box = +0 减 -0 ; // 结果为-0
var box = -0 加 -0 ; // 结果为+0
b如果一个操作数是字符串,布尔值,Null或者undefined
先在后台调用number()函数将其转化为数值,然后再根据前面规则执行减法计算。如果转换的结果是NaN,则减法的结果就是NaN。
c 如果一个操作数是对象
则调用对象的valueOf()方法以取得该对象的数值。
如果得到的结果是NaN,则减法的结果就是NaN。
如果对象没有valueOf()方法,则调用toString()方法并将得到的字符串转化为数值。
网友评论