一元运算符
一元运算符只对应一个操作数
1.例如typeof,in,delet,void和instranceof等
列如typeof
typeof "a"
这里返回了一个字符串“a“类型的值
例如 in
var obj = new Object()
obj.name = "张三"
console.log("name"in obj)
这里用于判断name是否存在obj中(ps:会输出一个布尔值)
2.自增自减也属于一元运算符
var a=1
console.log(a++);
var b=1
console.log(++b);
X++一般时先取值再自增,++X则是先自增再取值(X--和--X同理)
二元运算符:
二元运算符主要包括
&&运算符:
表示逻辑与(and)
var a = b && c
若b判定为真,则a的结果就为c的表达式,例:
var a = 90
var b = 89
var c = (a >= 90) && b
console.log(c)
在控制台输出的值就为89
若b判断为假,则a的结果就是b的表达式且不会继续运行c了,例:
var c = 0 && b
console.log(c)
在控制台输出的值就为0。
||运算符:
表示逻辑或(or)
var a=b||c
b表达式判定布尔值为真 a就为b表达式 c表达式不会运行
var a = (b = 1) || (c = 0)
console.log(a)
在控制台输出的值就为1。
b表达式判定的布尔值为假,a就为c表达式
var a = (b = 0) || (c = 1)
console.log(a)
在控制台输出的值就为1。
加减乘除符
+,-,*,/也属于二元运算符。
+:加法运算会吧元素转化为字符串然后运算
var a =10
var b = '10'
var c = a + b
console.log(c);
控制台得到的结果就是a和b的拼接:1010。
-:减法运算会把元素转化为数字然后运算
当元素为含数字的字符串或者为布尔值时,会得到的结果会是number型
var a = 1
var b = "2"
var c = b-a
console.log(c);
控制台输出结果为1。
而当与元素不是以上情况,例如为unicode的字符串
var a = 1
var b = "吃饭"
var c = b-a
console.log(c);
控制台输出的结果为NaN。
,操作符
,操作符会先执行运算符左侧的操作数,然后再执行右侧的操作数,最后返回右侧操作数的值。
var a = 20;
var b = 30;
var c = 40;
var re = (a = 100, b = 200, c) //逗号隔开的每一个表达式都要运行一遍,最后一个表达式作为整个逗号表达式的结果
console.log(re)
控制台得到的结果就为40
三目运算符
一般表达为 A?B:C(A B C都是表达式)
A表达式判定为布尔值的真,就会执行B表达式,而且整个三目表达式就生成结果了,就是B表达式。
var a = 20
var re = (a + 100) ? (b = 200) : (c = 90)
console.log(a)//20
console.log(b)//200
console.log(re)//200
反之如果A表达式判定的布尔值为假,就会执行A表达式,而且整个三目表达式就生成结果了,就是A表达式。
var re = (0) ? (b = 200) : (c = 90)
console.log(c)//90
console.log(re)//90