JS运算符和运算符优先级

先做一道题:

var val = 'abcd';
console.log('Value is ' + (val === 'abcd') ? 'A' : 'B');

控制台打印出的结果是  // A

因为连接符的优先级高于三元运算符,所以该题目相当于:'Value is ' + true ? 'A' : 'B',由此得出该题的两个变体:

console.log('Value is ' + val === 'abcd' ? 'A' : 'B'); // B

console.log('Value is ' + (val === 'abcd' ? 'A' : 'B')); // Value is A

总结一个运算符优先级表格,清晰明了

优先级运算类型关联性运算符
20圆括号 ()
19访问调用从左到右... . ..., ...[...], new带参数:new ...(...) ,函数调用:...(...)
18new(无参数)从右到左new(创建实例)
17后置递增从右到左...++, ...--
16从右到左

!, ~, +, -, ++..., --..., typeof(返回字符串), void,  delete, await

15从右到左**
14乘除从左到右*, /, %
13加减从左到右+, -
12按位左移从左到右<<, >>, >>>(无符号)
11小于从左到右<, <=, >, >=, in(属性是否存在,右侧必须是对象), instanceof
10等号从左到右==, !=, ===, !==
9按位与从左到右&
8按位异或从左到右

^(相同为0,不同为1)

7按位或从左到右|
6逻辑与从左到右&&
5逻辑或从左到右||
4条件运算符从右到左... ? ...  : ...
3赋值从右到左=, +=, -=, *=, /=, %=, <<=(左移), >>=(右移),>>>=(无符号),  &=, ^=, |=
2yield,yield*从右到左 
1展开运算符 ...
0逗号从左到右,

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值