摘要:成员访问的优先级在,运算之后,在其他的运算之前。判断的优先级也在赋值号的最前边。逻辑与和逻辑或要在左右两边的运算完成以后,在进行逻辑与和逻辑或比较。
逻辑符的运算优先级表(根据优先级从大到小排列)
优先级 运算类型 关联性 运算符 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("因为两个都不成立,所以这里面的不打印"); }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/83806.html
摘要:前言的基础语法与有很多相似之处,但是也有一些特定的关键词是独有的。以开头八进制由,,组成。整数默认是十进制十六进制由,,,,,,,,组成。初始化值必须初始化值,否则不能使用变量。 前言 java的基础语法与php有很多相似之处,但是也有一些特定的关键词是java独有的。 java的基础语法大体就包括:关键字,标识符,注释,常量,进制和进制转换,变量,数据类型和类型转换,运算符,语句 ...
阅读 1170·2021-09-03 10:44
阅读 546·2019-08-30 13:13
阅读 2773·2019-08-30 13:11
阅读 1911·2019-08-30 12:59
阅读 1000·2019-08-29 15:32
阅读 1558·2019-08-29 15:25
阅读 909·2019-08-29 12:24
阅读 1229·2019-08-27 10:58