摘要:成員訪問的優(yōu)先級在,運算之后,在其他的運算之前。判斷的優(yōu)先級也在賦值號的最前邊。邏輯與和邏輯或要在左右兩邊的運算完成以后,在進行邏輯與和邏輯或比較。
邏輯符的運算優(yōu)先級表(根據(jù)優(yōu)先級從大到小排列)
優(yōu)先級 運算類型 關聯(lián)性 運算符 19 圓括號 n/a ( … ) 18 成員訪問 從左到右 … . … 需計算的成員訪問 從左到右 … [ … ] new (帶參數(shù)列表) n/a new … ( … ) 17 函數(shù)調用 從左到右 … ( … ) new (無參數(shù)列表) 從右到左 new … 15 邏輯非 從右到左 ! … 一元加法 從右到左 + … 一元減法 從右到左 - … 前置遞增 從右到左 ++ … 前置遞減 從右到左 -- … typeof 從右到左 typeof … void 從右到左 void … delete 從右到左 delete … 14 乘法 從左到右 … * … 除法 從左到右 … / … 取模 從左到右 … % … 13 加法 從左到右 … + … 減法 從左到右 … - … 12 按位左移 從左到右 … << … 11 小于 從左到右 … < … 小于等于 從左到右 … <= … 大于 從左到右 … > … 大于等于 從左到右 … >= … in 從左到右 … in … instanceof 從左到右 … instanceof … 10 等號 從左到右 … == … 非等號 從左到右 … != … 全等號 從左到右 … === … 非全等號 從左到右 … !== … 9 按位與 從左到右 … & … 8 按位異或 從左到右 … ^ … 7 按位或 從左到右 … | … 6 邏輯與 從左到右 … && … 5 邏輯或 從左到右 … || … 4 條件運算符 從右到左 … ? … : … 3 賦值 從右到左 … = … … += … … -= … … *= … … /= … … %= … … &= … … ^= … … |= …
這里是運算優(yōu)先級的例子總結:
1、賦值操作排在所有的比較最后,(num == 1)里的內用最優(yōu)先運算。 2、成員訪問的優(yōu)先級在,()運算之后,在其他的運算之前。 3、函數(shù)的執(zhí)行,在其他比較和運算符之前之前。 4、判斷的優(yōu)先級也在賦值 = 號的最前邊。 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); // 函數(shù)運算的優(yōu)先級 var objOne = { name: "zhaoxuan", method:(function () { return function () { this.method = 1; return "fn是一個字符串" } })() }; // 函數(shù)運算執(zhí)行的優(yōu)先級,在賦值之前,先進行自執(zhí)行函數(shù)運算,然后再把自執(zhí)行函數(shù)運算的返回值,賦值給obj.method屬性。 var fn = objOne.method(); console.log(fn); // 這里也是,objOne.method();函數(shù)的運算優(yōu)先,先將函數(shù)進行運算,然后再把返回值給fn,fn現(xiàn)在的值就是字符串‘fn是一個字符串’ // 邏輯與 和 邏輯或 // 邏輯與 比 邏輯或的優(yōu)先級高。 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("因為兩個都不成立,所以這里面的不打印"); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/83806.html
摘要:跳過第二個運算子的機制,被稱為短路有些程序員喜歡用它取代結構等價于運算符可以多個連用返回第一個布爾值為的表達式的值。 一、運算符概述 1、定義 JavaScript中運算符主要用于連接簡單表達式,組成一個復雜的表達式 2、運算符類別 算數(shù)運算符 賦值表達式 比較表達式 布爾運算符 位運算符 二、算數(shù)運算符 1、加法運算符(Addition):x + y 加法運算符是在運行時決定,到...
摘要:前言的基礎語法與有很多相似之處,但是也有一些特定的關鍵詞是獨有的。以開頭八進制由,,組成。整數(shù)默認是十進制十六進制由,,,,,,,,組成。初始化值必須初始化值,否則不能使用變量。 前言 java的基礎語法與php有很多相似之處,但是也有一些特定的關鍵詞是java獨有的。 java的基礎語法大體就包括:關鍵字,標識符,注釋,常量,進制和進制轉換,變量,數(shù)據(jù)類型和類型轉換,運算符,語句 ...
閱讀 1207·2021-09-03 10:44
閱讀 604·2019-08-30 13:13
閱讀 2796·2019-08-30 13:11
閱讀 1967·2019-08-30 12:59
閱讀 1034·2019-08-29 15:32
閱讀 1595·2019-08-29 15:25
閱讀 987·2019-08-29 12:24
閱讀 1277·2019-08-27 10:58