JavaScript学习笔记——操作符

来源:互联网 发布:手机装修画图软件 编辑:程序博客网 时间:2024/05/17 08:12

一元操作符
只能操作一个值得操作符叫做 一元操作符 。
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;//二进制00000000000000000000000000011001var num2 = ~num1;//二进制11111111111111111111111111100110alert(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
0 0
原创粉丝点击