博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
逻辑符的运算优先级
阅读量:6702 次
发布时间:2019-06-25

本文共 2692 字,大约阅读时间需要 8 分钟。

逻辑符的运算优先级表(根据优先级从大到小排列)

优先级    运算类型    关联性    运算符19    圆括号    n/a    ( … )18    成员访问    从左到右    … . …    需计算的成员访问    从左到右    … [ … ]    new (带参数列表)    n/a    new … ( … )17    函数调用    从左到右    … ( … )    new (无参数列表)    从右到左    new …15    逻辑非    从右到左    ! …    一元加法    从右到左    + …    一元减法    从右到左    - …    前置递增    从右到左    ++ …    前置递减    从右到左    -- …    typeof    从右到左    typeof …    void    从右到左    void …    delete    从右到左    delete …14    乘法    从左到右    … * …    除法    从左到右    … / …    取模    从左到右    … % …13    加法    从左到右    … + …    减法    从左到右    … - …12    按位左移    从左到右    … << …11    小于    从左到右    … < …    小于等于    从左到右    … <= …    大于    从左到右    … > …    大于等于    从左到右    … >= …    in    从左到右    … in …    instanceof    从左到右    … instanceof …10    等号    从左到右    … == …    非等号    从左到右    … != …    全等号    从左到右    … === …    非全等号    从左到右    … !== …9    按位与    从左到右    … & …8    按位异或    从左到右    … ^ …7    按位或    从左到右    … | …6    逻辑与    从左到右    … && …5    逻辑或    从左到右    … || …4    条件运算符    从右到左    … ? … : …3    赋值    从右到左    … = …… += …… -= …… *= …… /= …… %= …… &= …… ^= …… |= …

总结:

1、赋值操作排在所有的比较最后,(num == 1)里的内用最优先运算。   2、成员访问的优先级在,()运算之后,在其他的运算之前。   3、函数的执行,在其他比较和运算符之前之前。   4、判断的优先级也在赋值 = 号的最前边。   5、逻辑与 和 逻辑或 要在左右两边的运算完成以后,在进行 逻辑与  和 逻辑或 比较。

这里是运算优先级的例子

var  obj = 1==1;    // console.log(obj);    var obj2 = 1>2;    var obj3 = 3*2;    var obj4 = !1 == 0; // 先运算 !1(1的取反),然后再和  == 0 ,进行比较,把比较的结果值赋给obj4    // 特殊例子    var i = 0;    var obj5 =  ++i; // 前置型递增,就是将i的值i本身再进行相加,然后再赋值给obj5    var obj6 =  i++;// 后置型递增,就是将i的值先赋值给obj5,然后i本身再进行相加    console.log(obj6);    // 函数运算的优先级    var objOne = {        name: 'zhaoxuan',        method:(function () {            return function () {                this.method = 1;                return 'fn是一个字符串'            }        })()    };    // 函数运算执行的优先级,在赋值之前,先进行自执行函数运算,然后再把自执行函数运算的返回值,赋值给obj.method属性。    var fn = objOne.method();    console.log(fn);    // 这里也是,objOne.method();函数的运算优先,先将函数进行运算,然后再把返回值给fn,fn现在的值就是字符串‘fn是一个字符串’    // 逻辑与 和 逻辑或    // 逻辑与 比 逻辑或的优先级高。    console.log(1 && 2 || 0);    // 先进行 1&&2 运算,然后拿 1&&2的运算结果 2和0进行逻辑或运算 ,也就是(2 || 0)。    console.log(1 && true || 0);// true    console.log(1 && 0 || 3 && 1 && true);    // 逻辑与,两个条件都成立,返回结果才是true    var num1 = 2;    var num2 = true;    if (num1 && num2) {        console.log('这才是成立的');    }    var num3 = false;    if (num1 && num3) {        console.log('这是不成立的,所以不打印');    }    //  true && false,第一个ture成立则返回第二个,如果,第一个不成立 false&&false,则直接返回第一个    console.log(false && true);        // 逻辑或  两个或者多个条件其中一个成立,则返回成立true    if( 1==1 || 2==0) {        console.log('这种或就成立的,因为1==1成立了');    }    // 如果两个都不成立,则就返回false    if( 1==3 || 2== 3) {        console.log('因为两个都不成立,所以这里面的不打印');    }

转载地址:http://xpwlo.baihongyu.com/

你可能感兴趣的文章
.NET Framework 新功能和增强的功能
查看>>
win7实用技巧之三IE8高级功能使用
查看>>
Calico 的网络结构是什么?- 每天5分钟玩转 Docker 容器技术(68)
查看>>
注册.OCX文件的方法
查看>>
Java编写(模仿51CTO 给图片加上水印)--原创
查看>>
Windows Phone 7 触摸编程-单点触摸利用Touch.FrameReported事件
查看>>
linux LVM 逻辑卷组管理
查看>>
Linux分区类型EXT2、EXT3、EXT4详解
查看>>
图像识别DM8127开发攻略——开发环境搭建
查看>>
idea 设置选中代码得背景颜色
查看>>
Javascript跨域后台设置拦截
查看>>
Office协同办公:SkyDrive
查看>>
稳扎稳打Silverlight(17) - 2.0数据之详解DataGrid, 绑定数据到ListBox
查看>>
Window下部署Maven Nexus
查看>>
Window.Open详解
查看>>
Python将数据库数据导入到EXCEL
查看>>
android api 中文 (73)—— AdapterView
查看>>
CHECKSUM/BINARY_CHECKSUM 和 HASHBYTES 的选择
查看>>
mono 最近的三条消息
查看>>
虚拟机与主机建立共享目录
查看>>