本文原链接:https://www.sojson.com/operation/javascript.html

https://www.jianshu.com/p/d569c6ca1060

JavaScript运算符优先级

JavaScript 运算符优先级,是描述在计算机运算计算表达式时执行运算的先后顺序。 先执行具有较高优先级的运算,然后执行较低优先级的运算。 例如,我们常说的先执行相乘和除,再执行加减运算。

JavaScript 运算符

优先级 运算符 说明 结合性
1 [].() 字段访问、数组索引、函数调用和表达式分组 从左向右
2 ++ -- -~!delete new typeof void 一元运算符、返回数据类型、对象创建、未定
义的值
从右向左
3 *、/、% 相乘、相除、求余数 从左向右
4 +、- 相加、相减、字符串串联 从左向右
5 <<、>>、>>> 左位移、右位移、无符号右移 从左向右
6 <、<=、>、>=、instanceof 小于、小于或等于、大于、大于或等于、是否
为特定类的实例
从左向右
7 ==、!=、===、!== 相等、不相等、全等,不全等 从左向右
8 & 按位“与” 从左向右
9 ^ 按位“异或” 从左向右
10 | 按位“或” 从左向右
11 && 短路与(逻辑“与”) 从左向右
12 || 短路或(逻辑“或”) 从左向右
13 ?: 条件运算符 从右向左
14 =、+=、-=、*=、/=、%=、&=、|=、^=、<、<=、>、>=、>>= 混合赋值运算符 从右向左
15 , 多个计算 按优先级计算,然后从右向左

圆括号处理Javascript运算说明

圆括号用于改变由运算符优先级确定的计算顺序。 这就是说,先计算完圆括号内的表达式,然后再将它的值用于表达式的其余部分。

var result = 10 * 5 + 3;
document.write(result);
document.write("<br/>"); result = 10 * (5 + 3);
document.write(result);
// 输出如下:
// 53
// 80

在第一个表达式中,按照优先级运算,先运算的是 10 * 5,然后再加3,结果为50

在第二个表达式中,我们用圆括号开改变优先级,先让(5 + 3),结果为8,然后用8去乘以10,结果是80

/:除法,如:int a = 8/9;

%:取余运算: int a = 10%2;


Javascript逻辑运算符

Javascript中主要区分 == 和 === ,同理 != 和 !== 的关系

var a = '100';
var b = 100;
document.write(a==b);
document.write(a===b); document.write(a!=b);
document.write(a!==b);
// 输出如下:
// true
// false
// false
// true

因为 Javascript 是弱类型语言,在数据类型上处理不是那么严格,也就造成了 '100'==100;返回true ,需要严格一点去比较'100'===100这个时候不仅比较值,还比较类型,所以返回false

同理 != 和 !==  也是一样,前者比较的是值,后者是类型和值都要比较。


Javascript 运算符总结

其实在运算过程中,和其他语言一样,最好直接带上括号,如var a = 1; a = (a + 100) >>(a+1); 和 var a = 1; a = a + 100>>a+1;结果都是25,运算顺序也一样,前面的可读性更好吧?

js各运算符的执行顺序的更多相关文章

  1. js 运算符的执行顺序

    js 运算符的执行顺序 js 运算符优先级 Operator Precedence 下表从最高(21)到最低(1)优先顺序排列 left-to-right 从左到右 / 先左后右 right-to-l ...

  2. js文件加载执行顺序

    转自:http://blog.163.com/water_down/blog/static/170276590201111711243458/ <script type="text/j ...

  3. 关于Ajax load页面中js部分$(function(){})的执行顺序

    <script type="text/javascript"> console.error(11111); $(function(){ console.error(22 ...

  4. 【Node.js】Event Loop执行顺序详解

    本文基于node 0.10.22版本 关于EventLoop是什么,请看阮老师写的什么是EventLoop 本文讲述的是EventLoop中的执行顺序(着重讲setImmediate, setTime ...

  5. js,timeout,promise执行顺序

    总结 macro-task包括:script(整体代码), setTimeout, setInterval, setImmediate, I/O, UI rendering. micro-task包括 ...

  6. js并行加载,顺序执行

    js并行加载,顺序执行 <script>运行脚本或加载外部文件时,会阻塞页面渲染,阻塞其他资源的加载.如果页面中需要加载多个js文件,在古老浏览器中性能会比较糟糕. 因此有了最原始的优化原 ...

  7. koa 基础(八)koa 中间件的执行顺序

    1.koa 中间件的执行顺序 app.js /** * koa 中间件的执行顺序 */ // 引入模块 const Koa = require('koa'); const router = requi ...

  8. js之运算符(算术运算符)

    Javascript中的运算符大多是由标点符号少数由关键字表示.可以根据其操作数的个数进行分类.大多数运算符是一个二元运算符,将两个表达式合成一个比较复杂的表达式.还有需要注意的一点是运算符的优先级, ...

  9. wex5 实战 wex5与js的组件关系与执行顺序(父子与先后)

    初学wex5,先理理让人容易混淆的三个概念: 一 基本概念: 1 wex5组件,顾名思义,在编辑窗口右侧的组件集合里的,都是wex5基于开源自创的组件,并封装了一套自已的方法.目的是为了方便.相关方法 ...

随机推荐

  1. Vee-validate 父组件获取子组件表单校验结果

    vee-validate 是为 Vue.js 量身打造的表单校验框架,允许您校验输入的内容并显示对应的错误提示信息.它内置了很多常见的校验规则,可以组合使用多种校验规则,大部分场景只需要配置就能实现开 ...

  2. Python之路(四十一):通过项目来深入理解tornado

    Tornado之路   引子 与其感慨路难行,不如马上出发 目录 通过项目来深入理解tornado(一):tornado基础回顾 通过项目来深入理解tornado(二):AsyncHttpClient ...

  3. 洛谷P2029 跳舞

    P2029 跳舞 题目描述 小明今天得到一个跳舞毯游戏程序Dance.游戏每次连续出N个移动的“箭头”,箭头依次标号为1到N,并且的相应的分数S[1..N].如果你能“踏中”第i号箭头,你将获得相应的 ...

  4. java实现对字符串和数字的冒泡排序

    public static void sort(Object[] objects){ if(objects instanceof Number[]){ for (int i = 0; i < o ...

  5. 如何使用Xshell连接VMware上的Linux虚拟机

    前序:最近开始研究Hadoop平台的搭建,故在本机上安装了VMware workstation pro,并创建了Linux虚拟机(centos系统),为了方便本机和虚拟机间的切换,准备使用Xshell ...

  6. PHP命名大小写敏感规则

    一直觉得PHP中各种大小写规则理不清,就连工作多年的老手们也不一定能对PHP大小写敏感问题足够了解.在PHP中,大小写敏感问题的处理比较乱,大家一定要注意.即使某些地方大小写不敏感,但在编程过程中能始 ...

  7. Codeforces 1154G(枚举)

    我预处理\(1e7log(1e7)\)的因数被T掉了,就不敢往这个复杂度想了--无奈去看AC代码 结果怎么暴举gcd剪一剪小枝就接近3s卡过去了!vector有锅(确信 const int maxn ...

  8. Netty-flush

    TimerServer: ch.pipeline().addLast(new TimeEncoder()); ch.pipeline().addLast(new TimeServerHandler() ...

  9. springboot启动提示缺少数据源

    If you want an embedded database please put a supported one on the classpath. If you have database s ...

  10. jdk1.6与jdk1.7list集合排序区别与算法

    源码分析: 在Collections.sort中:    public static <T extends Comparable<? super T>> void sort(L ...