您当前的位置: 首页 > 学无止境 > JS经典实例 网站首页JS经典实例
javascript学习笔记-运算符
发布时间:2018-04-05 17:38:14编辑:雪饮阅读()
一元运算符
只能操作一个值的运算符叫做一元运算符,如递增递减(box++,box--)等。
自增
对于纯数字的字符串自增会先将字符串转换为数值然后自增
对于非纯数字的字符串自增由于转换不了数值则会在自增后返回NaN
false自增也会转换为数值然后自增
对象的自增需要对象内部有valueOf方法或toString方法并且这两个方法返回值满足可以转换为数值然后才可以自增,如:
var box={
valueOf:function(){
return 1;
}
};
box++;
var box2={
toString:function(){
return 2;
}
}
box2++;
alert(box);
alert(box2);
加法
两个运算数值只要有一个NaN则加法运算后就是NaN
正无穷和正无穷相加值为正无穷
负无穷与负无穷相加值为负无穷
正无穷和负无穷相加值为NaN
数值与字符串相加值为字符串
数值与对象相加的值取决于对象是否可以转换为数值,如果不能则结果为字符串,否则结果为数值
减法
两个运算数值只要有一个为NaN则结果为NaN
正无穷减正无穷为NaN
负无穷减负无穷为NaN
正无穷减负无穷为正无穷
负无穷减正无穷为负无穷
一个数减去一个空串值为这个数本身(空串转换为数值0)
减法没有字符串连接问题,所以数值与字符串做减法若字符串为纯数值则结果为数值,如果字符串不是纯数值,则结果为NaN
数值与null做减法由于null可以转换为0,所以结果也为数值
数值与对象做减法取决于对象的toString和valueOf方法的返回值。如果对象不存在这两个方法则结果为NaN。
关系运算符
用来比较两个值的运算符叫做关系运算符
如果有一个操作数据是数值字符串,则会将字符串转换为数值然后再进行比较,如
var box='3'>2;
alert(box);
如果两个操作数据都是数值字符串,则会将两个字符串的第一个字符进行比较
var box='123'>'2';
alert(box);
两个操作数有一个是对象,则先调用valueOf或者toString方法再用结果比较,如果为空对象则直接返回false
两个操作数都是字符串,则比较两个字符串的对应的字符编码值(ascii)
Null自动转换为0,但在比较运算上,null和undefined没有自动转换
逻辑运算符
如果两边的操作数有一个操作数不是布尔值的情况下,与运算就不一定返回布尔值,此时遵循以下规则:
1、 第一个操作数是对象,则返回第二个操作数
2、 第二个操作数是对象,则第一个操作数返回true,才返回第二个操作数,否则返回false
3、 有一个操作数是null,则返回null
4、 有一个操作数是undefined,则返回undefined
逻辑与运算符属于短路操作,顾名思义,如果第一个操作数返回false,第二个数不管是true还是false都返回false
逻辑或运算符
如果两边的操作数有一个操作数不是布尔值的情况下,逻辑与运算就不一定返回布尔值,此时遵循以下规则:
1、 第一个操作数是对象,则返回第一个数
2、 第一个操作数的求值结果为false,则返回第二个操作数
3、 两个操作数都是对象,则返回第一个操作数
4、 两个操作数都是null,则返回null
5、 两个操作数都是NaN,则返回NaN
6、 两个操作数都是undefined,则返回undefined
和逻辑与运算符相似,逻辑或运算符也是短路操作。当第一个操作数的求值结果为true,就不会对第二个操作数求值了。
逻辑非运算符
逻辑非运算符可以用于任何值。无论这个值是什么数据类型,这个运算符都会返回一个布尔值。它的流程是:先将这个值转换成布尔值,然后取反。如:
var box=!{}//相当于Boolean({});
alert(box);
赋值运算符
一次声明多个变量
var box=100,age=200,height=300;
alert(height);
一个变量赋多个值(最后一个生效)
var box=(1,2,3,4,5);
alert(box);
以数组的形式赋值,输出时可以输出整个数组结构也可以按数组索引输出
var box=[1,2,3,4,5];
alert(box);
alert(box[0]);
以对象的形式赋值
var box={a:'va',b:'vb',c:'vc',3:'v3'};
alert(box);
alert(box.a);
alert(box['b']);
alert(box[3]);
三元运算符
var box=3>2?'对':'错';
alert(box);
关键字词:javascript,运算符