javascript 操作符和表达式

操作符和表达式

/* js操作符汇总 */
一元操作符(++ ,--)
算术操作符(+ ,- ,* ,/,%)
关系操作符(> ,< ,>= ,<=)
相等操作符(== ,!= ,=== ,!==)
逻辑操作符(! ,&& ,||)
赋值操作符(=)
条件操作符(?:)
逗号操作符(,)
对象操作符(new ,delete ,[] ,instanceof ,in)
位操作符(~ ,& ,| ,^ ,<< ,>> ,>>>)

一元操作符(++ ,--)

var age = 29;
++age;//30
age++;//31

var age = 29;
var num = age++;//num = 29,因为`var num = age++`是先使用后`++`的

算术操作符(+ ,- ,* ,/ ,%)

var num = 5 + 6;//11
var num1 = 3%2;//1

关系操作符(> ,< ,>= ,<=)

var result = 6>4;
aler(result);//true

相等操作符(== ,!= ,=== ,!==)

var num = 4;
num == 4;//true

var num = "4";
num == 4;//true

0 == false;//true
2 == true;//false
'' == 0;//true

var num = "4";
num === 4;//false
num !== 4;//true

逻辑操作符(! ,&& ,||)

/* 非:‘!’ */
var flag = true;
alert(!flag);//false
---
alert(!0);//true
alert(![]);//false
alert(!"");true
---

/* 与:‘&&’ (短路的操作,第一个为true,则整个表达式的值为另一个 */
var result = true && false;//false
var result = true && 3;//3
var result = 1 && 3;//3
var result = [] && "";//""

/* 或:‘||’ (短路的操作,如果第一个为true,则值为第一个;否则值为第二个 */
var result = true || 3;//true
var result = 1 || 3;//1
var result = [] || "";//[]
var result = false || 0;//0
var result = "" ||3;//3
var result = null || true;//true
---
var num = 0;
var result = 3 || num++;//3(应该是,待验证!!,经过验证,是正确的!)

赋值操作符(=)

var num = 5;//5
num = mum + 5;//10
mun +=5;//15

操作符(?:)

/*
布尔表达式 ? 值一 : 值二 ;
若‘布尔表达式’的值为true,则上式的值为‘值一’,否则为‘值二’
*/
---
var result;
var sex = true;
if(sex){
    result = 'male';
}else{
    result = 'female';
}
---
/* 上面的语句可以用条件操作符改写如下 */
var sex = true;
var result = sex ? 'male' : 'female';

逗号操作符(,)

var num1 = 5;
var num2 = 10;
var num3 = 0.5;
/* 上面的三个式子可以用逗号操作符改写如下 */
var num1 = 5,num2 = 10,num3 = 0.5;

对象操作符(new / delete / . / [] / instanceof / in

var cat = new Object();//用方法new来定义cat为一个对象
---
var cat = {name:'kitty',age:2};
aler(cat.name);//'kitty'
delet cat.name;
alert(cat.name);//undefined
---
var cat = {name:'kitty',age:2};
alert(cat.name);//'kitty'
alert(cat['name']);//'kitty'
---
var cat = {name:'kitty',age:2};
alert(cat instanceof Object);//true
alert(cat instanceof Number);//false
---
var cat = {name:'kitty',age:2};
alert('name' in cat);//true
alert('run' in cat);//false

位操作符(~,&,|,^,<<,>>,>>>)

这里的位操作符是针对二进制数字的操作,详情待研究!!!;

var num = 8;
num & 4;//意思是8的二进制数字`1000`和4的二进制数字`0100`对位比较,相同为1,不同为0,结果为0
---
var num = 2;
num <<1;//意思是2的二进制数字`0010`中的‘1’向左移动1位,结果为`0100`即为4
num <<2;//意思是2的二进制数字`0010`中的‘1’向左移动2位,结果为`1000`即为8

操作符优先级

var num = 5 + 4 * 3;//17
4 + 0 || 3;//4
!false && [];//[]
4>3?5:7+10;//5
posted @ 2021-01-11 22:09  格一  阅读(88)  评论(0编辑  收藏  举报