JavaScript学习笔记——操作符
2016-03-04 16:23
405 查看
一元操作符
只能操作一个值得操作符叫做 一元操作符 。
1、递增递减操作符
递增和递减操作符有两种类型:前置性和后置型。前置型位于操作的变量之前, 先执行值的变化然后求值 。 后置型位于操作的变量之后, 先执行求值然后执行值的变化 。
前置型:
后置型:
2、一元加和减操作符
加操作符
减操作符
位操作符
1、按位非(~)
按位非操作的本质:操作数的负值减1。
2、按位与(&)
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
3、按位或(|)
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
4、按位异或(^)
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
5、左移(<<)
向左移位后,原数值的右侧多了n个空位,用0 补齐,左移不移符号位
6、有符号右移(>>)
与左移正好相反,符号位不变
7、无符号右移(>>>)
正数与有符号数相同,负数移动时符号位也会随之移动。
布尔操作数
1、逻辑与(&&)
true && true = true
true && false = false
false && true = false
false && false = false
如果第一个操作数是对象,返回第二个操作数;
如果第二个操作数是对象,只有在第一个操作数是true时返回该对象;
如果有一个操作数是null,NaN或undefined,分别返回null,NaN,undefined。
2、逻辑或(||)
true || true = true
true || false = true
false || true = true
false || false = false
如果第一个操作数是对象,返回第一个操作数;
如果两个操作数都是对象,返回第一个操作数;
如果第一个操作数求值结果是false,返回第二个操作数;
如果有一个操作数是null,NaN或undefined,分别返回null,NaN,undefined。
3、逻辑非(!)
如果操作数是一个对象,返回false;
如果操作数是一个空字符串,返回true;
如果操作数是一个非空字符串,返回false;
如果操作数是0,返回true;
如果操作数是非0值,包括Infinity,返回false;
如果操作数是null,NaN或undefined,返回true。
乘性操作符 乘法、除法和求模
加性操作符 加法和减法
关系操作符 <、>、<=、>=
因为B编码为66,a是97,所以为true
字符串”23“小于字符串”3“
字母a被转换为了NaN
相等操作符
1、相等于不相等(== 和!=)
两个操作数相等,返回true,不相等返回false
不同类型的操作数会进行强制转换之后进行比较
null == undefined
2、全等与不全等
不进行强制转换,进行比较
null !== undefined
条件操作符(?:)
赋值操作符
乘赋值 *= 除赋值/= 模赋值 %= 加赋值 += 减赋值-=
逗号操作符
只能操作一个值得操作符叫做 一元操作符 。
1、递增递减操作符
递增和递减操作符有两种类型:前置性和后置型。前置型位于操作的变量之前, 先执行值的变化然后求值 。 后置型位于操作的变量之后, 先执行求值然后执行值的变化 。
前置型:
var age = 29; var anotherage==++age-2; alert(age); //30 alert(anotherage); //28
后置型:
var num1 =2; var num2=20; var num3 = num1-- + num2; //22 var num4=num1+num2; //21
2、一元加和减操作符
var s1="01"; var s2="1.1"; var s3="z"; var b = false; var f = 1.1; var o ={ valueOf:function(){ return -1; } }
加操作符
s1 = +s1;//值变成数值1 s2 = +s3;//值变成数值1.1 s3 = +s3;//值变成NaN b = +b;//值变成数值0 f = +f;//值仍是1.1 o = +o//值变成-1;
减操作符
s1 = -s1;//值变成数值-1 s2 = -s3;//值变成数值-1.1 s3 = -s3;//值变成NaN b = -b;//值变成数值0 f = -f;//值仍是-1.1 o = -o//值变成1
位操作符
1、按位非(~)
按位非操作的本质:操作数的负值减1。
var num1 = 25;//二进制00000000000000000000000000011001 var num2 = ~num1;//二进制11111111111111111111111111100110 alert(num2);-26
2、按位与(&)
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
3、按位或(|)
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
4、按位异或(^)
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
5、左移(<<)
向左移位后,原数值的右侧多了n个空位,用0 补齐,左移不移符号位
6、有符号右移(>>)
与左移正好相反,符号位不变
7、无符号右移(>>>)
正数与有符号数相同,负数移动时符号位也会随之移动。
布尔操作数
1、逻辑与(&&)
true && true = true
true && false = false
false && true = false
false && false = false
如果第一个操作数是对象,返回第二个操作数;
如果第二个操作数是对象,只有在第一个操作数是true时返回该对象;
如果有一个操作数是null,NaN或undefined,分别返回null,NaN,undefined。
2、逻辑或(||)
true || true = true
true || false = true
false || true = true
false || false = false
如果第一个操作数是对象,返回第一个操作数;
如果两个操作数都是对象,返回第一个操作数;
如果第一个操作数求值结果是false,返回第二个操作数;
如果有一个操作数是null,NaN或undefined,分别返回null,NaN,undefined。
3、逻辑非(!)
如果操作数是一个对象,返回false;
如果操作数是一个空字符串,返回true;
如果操作数是一个非空字符串,返回false;
如果操作数是0,返回true;
如果操作数是非0值,包括Infinity,返回false;
如果操作数是null,NaN或undefined,返回true。
乘性操作符 乘法、除法和求模
加性操作符 加法和减法
关系操作符 <、>、<=、>=
var result = "Brick"<"alphbet"; //true
因为B编码为66,a是97,所以为true
var result = "Brick".toLowerCase() < "alphbet".toLowerCase(); // false
var result = "23"<"3";//true
字符串”23“小于字符串”3“
var result = 23 < 3//false
var result = "a" < 3//true
字母a被转换为了NaN
相等操作符
1、相等于不相等(== 和!=)
两个操作数相等,返回true,不相等返回false
不同类型的操作数会进行强制转换之后进行比较
null == undefined
2、全等与不全等
不进行强制转换,进行比较
null !== undefined
条件操作符(?:)
var max = (num1 > num2) ? num1 : num2
赋值操作符
乘赋值 *= 除赋值/= 模赋值 %= 加赋值 += 减赋值-=
逗号操作符
var num = (1,2,3,4,5);//num值是5
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享
- 如何创建对象以及jQuery中创建对象的方式
- 数组方法汇总