摘要:成員訪問的優(yōu)先級(jí)在,運(yùn)算之后,在其他的運(yùn)算之前。判斷的優(yōu)先級(jí)也在賦值號(hào)的最前邊。邏輯與和邏輯或要在左右兩邊的運(yùn)算完成以后,在進(jìn)行邏輯與和邏輯或比較。
邏輯符的運(yùn)算優(yōu)先級(jí)表(根據(jù)優(yōu)先級(jí)從大到小排列)
優(yōu)先級(jí) 運(yùn)算類型 關(guān)聯(lián)性 運(yùn)算符 19 圓括號(hào) n/a ( … ) 18 成員訪問 從左到右 … . … 需計(jì)算的成員訪問 從左到右 … [ … ] new (帶參數(shù)列表) n/a new … ( … ) 17 函數(shù)調(diào)用 從左到右 … ( … ) new (無參數(shù)列表) 從右到左 new … 15 邏輯非 從右到左 ! … 一元加法 從右到左 + … 一元減法 從右到左 - … 前置遞增 從右到左 ++ … 前置遞減 從右到左 -- … typeof 從右到左 typeof … void 從右到左 void … delete 從右到左 delete … 14 乘法 從左到右 … * … 除法 從左到右 … / … 取模 從左到右 … % … 13 加法 從左到右 … + … 減法 從左到右 … - … 12 按位左移 從左到右 … << … 11 小于 從左到右 … < … 小于等于 從左到右 … <= … 大于 從左到右 … > … 大于等于 從左到右 … >= … in 從左到右 … in … instanceof 從左到右 … instanceof … 10 等號(hào) 從左到右 … == … 非等號(hào) 從左到右 … != … 全等號(hào) 從左到右 … === … 非全等號(hào) 從左到右 … !== … 9 按位與 從左到右 … & … 8 按位異或 從左到右 … ^ … 7 按位或 從左到右 … | … 6 邏輯與 從左到右 … && … 5 邏輯或 從左到右 … || … 4 條件運(yùn)算符 從右到左 … ? … : … 3 賦值 從右到左 … = … … += … … -= … … *= … … /= … … %= … … &= … … ^= … … |= …
這里是運(yùn)算優(yōu)先級(jí)的例子總結(jié):
1、賦值操作排在所有的比較最后,(num == 1)里的內(nèi)用最優(yōu)先運(yùn)算。 2、成員訪問的優(yōu)先級(jí)在,()運(yùn)算之后,在其他的運(yùn)算之前。 3、函數(shù)的執(zhí)行,在其他比較和運(yùn)算符之前之前。 4、判斷的優(yōu)先級(jí)也在賦值 = 號(hào)的最前邊。 5、邏輯與 和 邏輯或 要在左右兩邊的運(yùn)算完成以后,在進(jìn)行 邏輯與 和 邏輯或 比較。
var obj = 1==1; // console.log(obj); var obj2 = 1>2; var obj3 = 3*2; var obj4 = !1 == 0; // 先運(yùn)算 !1(1的取反),然后再和 == 0 ,進(jìn)行比較,把比較的結(jié)果值賦給obj4 // 特殊例子 var i = 0; var obj5 = ++i; // 前置型遞增,就是將i的值i本身再進(jìn)行相加,然后再賦值給obj5 var obj6 = i++;// 后置型遞增,就是將i的值先賦值給obj5,然后i本身再進(jìn)行相加 console.log(obj6); // 函數(shù)運(yùn)算的優(yōu)先級(jí) var objOne = { name: "zhaoxuan", method:(function () { return function () { this.method = 1; return "fn是一個(gè)字符串" } })() }; // 函數(shù)運(yùn)算執(zhí)行的優(yōu)先級(jí),在賦值之前,先進(jìn)行自執(zhí)行函數(shù)運(yùn)算,然后再把自執(zhí)行函數(shù)運(yùn)算的返回值,賦值給obj.method屬性。 var fn = objOne.method(); console.log(fn); // 這里也是,objOne.method();函數(shù)的運(yùn)算優(yōu)先,先將函數(shù)進(jìn)行運(yùn)算,然后再把返回值給fn,fn現(xiàn)在的值就是字符串‘fn是一個(gè)字符串’ // 邏輯與 和 邏輯或 // 邏輯與 比 邏輯或的優(yōu)先級(jí)高。 console.log(1 && 2 || 0); // 先進(jìn)行 1&&2 運(yùn)算,然后拿 1&&2的運(yùn)算結(jié)果 2和0進(jìn)行邏輯或運(yùn)算 ,也就是(2 || 0)。 console.log(1 && true || 0);// true console.log(1 && 0 || 3 && 1 && true); // 邏輯與,兩個(gè)條件都成立,返回結(jié)果才是true var num1 = 2; var num2 = true; if (num1 && num2) { console.log("這才是成立的"); } var num3 = false; if (num1 && num3) { console.log("這是不成立的,所以不打印"); } // true && false,第一個(gè)ture成立則返回第二個(gè),如果,第一個(gè)不成立 false&&false,則直接返回第一個(gè) console.log(false && true); // 邏輯或 兩個(gè)或者多個(gè)條件其中一個(gè)成立,則返回成立true if( 1==1 || 2==0) { console.log("這種或就成立的,因?yàn)?==1成立了"); } // 如果兩個(gè)都不成立,則就返回false if( 1==3 || 2== 3) { console.log("因?yàn)閮蓚€(gè)都不成立,所以這里面的不打印"); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/83806.html
摘要:跳過第二個(gè)運(yùn)算子的機(jī)制,被稱為短路有些程序員喜歡用它取代結(jié)構(gòu)等價(jià)于運(yùn)算符可以多個(gè)連用返回第一個(gè)布爾值為的表達(dá)式的值。 一、運(yùn)算符概述 1、定義 JavaScript中運(yùn)算符主要用于連接簡單表達(dá)式,組成一個(gè)復(fù)雜的表達(dá)式 2、運(yùn)算符類別 算數(shù)運(yùn)算符 賦值表達(dá)式 比較表達(dá)式 布爾運(yùn)算符 位運(yùn)算符 二、算數(shù)運(yùn)算符 1、加法運(yùn)算符(Addition):x + y 加法運(yùn)算符是在運(yùn)行時(shí)決定,到...
摘要:前言的基礎(chǔ)語法與有很多相似之處,但是也有一些特定的關(guān)鍵詞是獨(dú)有的。以開頭八進(jìn)制由,,組成。整數(shù)默認(rèn)是十進(jìn)制十六進(jìn)制由,,,,,,,,組成。初始化值必須初始化值,否則不能使用變量。 前言 java的基礎(chǔ)語法與php有很多相似之處,但是也有一些特定的關(guān)鍵詞是java獨(dú)有的。 java的基礎(chǔ)語法大體就包括:關(guān)鍵字,標(biāo)識(shí)符,注釋,常量,進(jìn)制和進(jìn)制轉(zhuǎn)換,變量,數(shù)據(jù)類型和類型轉(zhuǎn)換,運(yùn)算符,語句 ...
摘要:運(yùn)算符主要介紹不常用到的位運(yùn)算符,位運(yùn)算符都是相對整型二進(jìn)制數(shù)位來說的假設(shè)是一個(gè)被移位的整型數(shù)據(jù),是位移量。按位運(yùn)算符也可以操作邏輯型數(shù)據(jù)。所以,如果以后有人問你是值傳遞還是引用傳遞,你直接告訴他這是個(gè)無聊的問題。 Java基礎(chǔ) 關(guān)鍵字 主要介紹不常用到的關(guān)鍵字: native - native通常用來修飾方法,一個(gè)native方法就是一個(gè)Java調(diào)用非Java代碼的接口(A nat...
閱讀 1213·2021-09-03 10:44
閱讀 614·2019-08-30 13:13
閱讀 2804·2019-08-30 13:11
閱讀 1974·2019-08-30 12:59
閱讀 1042·2019-08-29 15:32
閱讀 1603·2019-08-29 15:25
閱讀 999·2019-08-29 12:24
閱讀 1288·2019-08-27 10:58