运算符优先级 (JavaScript)
运算符优先级描述了在计算表达式时执行运算的顺序。先执行具有较高优先级的运算,然后执行较低优先级的运算。例如,先执行相乘,再执行相加。
下表列出了 JavaScript 运算符,并按优先级顺序从高到低排列。具有相同优先级的运算符按从左至右的顺序计算。
|
运算符 |
说明 |
|---|---|
|
.[ ] ( ) |
字段访问、数组索引、函数调用和表达式分组 |
|
++ -- - ~ ! delete new typeof void |
一元运算符、返回数据类型、对象创建、未定义的值 |
|
* / % |
相乘、相除、求余数 |
|
+ - + |
相加、相减、字符串串联 |
|
<< >> >>> |
移位 |
|
< <= > >= instanceof |
小于、小于或等于、大于、大于或等于、是否为特定类的实例 |
|
== != === !== |
相等、不相等、全等,不全等 |
|
& |
按位“与” |
|
^ |
按位“异或” |
|
| |
按位“或” |
|
&& |
逻辑“与” |
|
|| |
逻辑“或” |
|
?: |
条件运算 |
|
= OP= |
赋值、赋值运算(如 += 和 &=) |
|
, |
多个计算 |
圆括号用于改变由运算符优先级确定的计算顺序。这就是说,先计算完圆括号内的表达式,然后再将它的值用于表达式的其余部分。
例如:
var result = 78 * 96 + 3;
document.write(result);
document.write("<br/>"); result = 78 * (9 + 3);
document.write(result); // Output:
// 7491
// 936
第一个表达式中有 3 个运算符:=、* 和 +。按照运算符优先级规则,按以下顺序计算:*、+、=(78 * 96 = 7488、7488 + 3 = 7491)。
在第二个表达式中,先计算 ( ) 运算符,因此,先计算加法表达式,再计算乘法表达式(9 + 3 = 12,12 * 78 = 936)。
以下示例演示包括多个运算符并解析为 true 的语句。
var num = 10;
if(5 == num / 2 && (2 + 2 * num).toString() === "22") {
document.write(true);
}
// Output:
// true
运算符按以下顺序计算:用于分组的 ( )、*、+(分组内)、函数中的 "."、函数中的 ( )、/、==、=== 和 &&。
运算符优先级 (JavaScript)的更多相关文章
- JavaScript运算符优先级引起的bug
[下面是昨天发给同事的邮件,为防止泄露商业机密,隐去了项目名和变量名] ==================================================== 昨天发现Nx代码中的一 ...
- (转)JavaScript中的运算符优先级
JavaScript中的运算符优先级是一套规则.该规则在计算表达式时控制运算符执行的顺序.具有较高优先级的运算符先于较低优先级的运算符执行.例如,乘法的执行先于加法. 下表按从最高到最低的优先级列出J ...
- javascript 运算符优先级
JavaScript 运算符优先级(从高到低) https://github.com/xhlwill/blog/issues/16 今天把js函数转换为python 函数时,发现在js运算符优先级这边 ...
- JavaScript基础之运算符及全面的运算符优先级总结
算数运算符: 加+,减—,乘*,除/,求余%,加加++,减减——, 加减乘除求余运算与数学上的用法完全一样. 不过,加号+还有连接字符串的作用,其他运算符还可以将字符串数字转换成数值型,参见JavaS ...
- js 运算符优先级
在看jquery源码,仔细看入口函数的时候,有点懵了.看到与或.多重三目,傻傻的分不清,就代码仔细的区分下运算符优先级,以前都是呼呼的飘过.看来任何一个细节都不能忽略,不然效率极低.. !functi ...
- js变量定义提升、this指针指向、运算符优先级、原型、继承、全局变量污染、对象属性及原型属性优先级
原文出自:http://www.cnblogs.com/xxcanghai/p/5189353.html作者:小小沧海 题目如下: function Foo() { getName = functio ...
- c/c++系列的运算符优先级总结
经常写程序的时候,遇到运算符优先级的问题,令我汗颜的是,查书的次数挺多的……狠狠心,总结下.不过还要结合大量的编程实践来深入脑海. 1.首先永远忘不了的是,逗号运算符级别最低,毫无争议的还有()括起来 ...
- C语言运算符优先级和口诀(转)
一共有十五个优先级: 1 () [] . -> 2 ! ~ -(负号) ++ -- &(取变量地址)* (type)(强制类型) sizeof 3 ...
- 一道c语言运算符优先级问题
一道c语言运算符优先级问题 #include <iostream> using namespace std; int main() { char test[] = {"This ...
随机推荐
- EasyDarwin+ffmpeg进行PC(摄像头+麦克风)流媒体直播服务
上一回我们描述了用EasyDarwin+ffmpeg进行摄像机直播的过程:ffmpeg推送,EasyDarwin转发,vlc播放 实现整个RTSP直播 我们再进行一个方面的描述,那就是pc摄像头+麦克 ...
- DP小合集
1.Uva1625颜色的长度 dp[i][j]表示前一个串选到第i个 后一个串选到第j个 的最小价值 记一下还有多少个没有结束即dp2 记一下每个数开始和结束的位置 #include<cstdi ...
- unity中mesh属性的uv坐标讨论
http://blog.sina.com.cn/s/blog_427cf00b0102vp0j.html 之前在做连连看游戏中,也用到贴图坐标,当时我们讲到,不管是平铺(Tiling)还是偏移(Off ...
- 洛谷【P1358】扑克牌
我对状态空间的理解:https://www.cnblogs.com/AKMer/p/9622590.html 题目传送门:https://www.luogu.org/problemnew/show/P ...
- 理解Promise
一.Propmise基本用法 Promise用于发送一个异步完成的结果,是替代回调函数的另一种选择.可以把Promise理解为一种异步函数. 以下函数通过一个Promise来异步地返回一个结果 fun ...
- python xml包 xml.etree.ElementTree使用记录
19.7.1 教程 这是一个简短的教程使用xml.etree.ElementTree(简称为et).目标是展示一些构建模块和模块的基本概念 9.7.1.1. XML tree and elements ...
- SQL SERVER 中的*=和=*
一.* =和= * 是在sql server2000中左连接,右连接的用法相当于left join 和right join,现在sql2005和2008默认是不支持的,可以设置兼容2000或2008 ...
- mount总结
挂载分区 mount基本语法 mount [参数] /dev/sdb1(需要挂载的分区) /sdb1(挂载目录) 参数是可选的,也可以不带参数,参数的使用方法(-o ro,sync,atime). 参 ...
- k8s 基础 pod操作
创建hell world pod #vim hello-world-pod.yaml apiVersion: v1 kind: Pod metadata: name: hello-world spec ...
- python 基础 字符串格式化
print "hello %s %s" % ('wd','pc') c风格 print "hello {1} {0}".format("wd" ...