一、二、三元运算符
● 一元运算符
delete:用于删除对象中属性,如: delete o. name; //删除o对象中的name属性
++ --:一元加法和一元减法
1. 算术运算符
console.log('10'+20);//1020
console.log('10'+20+30);//102030
console.log(10+'20'+30);//102030
console.log(10+20+'30');//3030
console.log(true+'1');//true1
console.log(true+1);//2
var a = 10;
b = 10 + a++;//b=20,a=11:先取出变量a的值与10求和后赋值给b后,a再进行自增1
console.log(b);
console.log(a);
var c = 10;
b = 10 + ++c;//b=21,c=11:c先进行自增1后,再与10求和赋值给b
console.log(b);
console.log(c);
var a1=10;
console.log(a1 + ++a1);//21
var a2=10;
console.log(a2 + a2++);//20
var a3=10;
console.log(a3++ + ++a3);//10+12=22
var a4=10;
console.log(a4++ + a4++);//10+11=21
var a5=10;
console.log(++a5 + ++a5);//11+12=23
●注意:其中+号具有两重意思:字串连接和数值求和。
●就是加号”+"两侧都是 数值则求和,否则做字串连接
2.赋值运算符
3.比较运算符
/*比较的是ASCII值*/
console.log("a">"b");//false
console.log("a">"A");//true
console.log("abc">"abd");//false
//比价时单双引号都没关系
console.log(10=="10") //true 等值比较(会自动转换成同类型比较)
console.log(10==='10')//false 等值等类型比较
console.log(10!=='20')//true
4.逻辑运算符
5.位运算符
●位运算符处理32位数。
●该运算中的任何数值运算数都会先被转换为32位的二进制数,结果默认转回十进制数。
//&与 |或 ~非 ^异或 <<零填充左位移 >>有符号右位移 >>>零填充右位移
console.log(5&1);//0101&0001=0001 1
console.log(5|1);//0101|0001=0101 5
console.log(~5);//~0101=1010 -6 取反
/*
●上例使用4位无符号的例子。但是JavaScript使用32位有符号数。
●因此,在JavaScript中,~5不会返回10,而是返回-6。
●000000000000000000000000000101 将返回11111111111111111111111111010 。
*/
console.log(5^1);//0101^0001=0100 4 同假异真
console.log(5<<3);//0101->101000 40
console.log(40>>3);//101000->101 5
//有符号位移运算时如果数字为正数时位移后在前面补0,为负数时则在位移后在前面补1
console.log(40>>>3);//101000->101 5
6.其他运算符
三元运算符
语法:
vari ablename = (condition) ? value1: va1ue2
逗号运算符
类型运算符
运算符 描述
typeof 返回变量的类型。
instanceof 返回true,如果对象是对象类型的实例。
delete运算符
见顶行
运算符的优先级
优先级从高到底
- () 优先级最高
- 一元运算符 ++ – !
- 算数运算符先* / % 后+ -
- 关系运算符> >= < <=
- 相等运算符 == != === !==
- 逻辑运算符 先&& 后||
- 赋值运算符 += -= *= /= %=