部分操作符的說(shuō)明

  • 一元操作符

    • 只能夠操作一個(gè)值的操作叫做一元操作符。

① 和遞減操作符

[01] 前置型,遞增和遞減操作在包含他們的語(yǔ)句被求值之前就執(zhí)行。
[02] 后置型,遞增和遞減操作在包含他們的語(yǔ)句被求值之后才執(zhí)行。
var num1 = 2;
var num2 = 20;
var num3 = --num1 + num2;  //21
var num4 = num1 + num2; // 21
-----------
var num1 = 2;
var num2 = 20;
var num3 = num1 -- + num2; //22
var num4 = num1 + num2; //21

② 一元加和減操作符

  • 一元加操作符對(duì)結(jié)果不會(huì)有任何影響

  • 一元減操作符主要用于表示負(fù)數(shù)。

  • 位操作符

01 按位非(NOT)使用~表示,執(zhí)行按位非得結(jié)果就是返回值的反碼。操作數(shù)的負(fù)值減去1

var num1 = 25;
var num2 = -num1 -1;  //-26
console.log(~num1)  //-26

02按位與(AND)使用&表示,操作兩個(gè)操作數(shù)。 只要有0 就為0
03按位或(OR)使用 | 表示,操作兩個(gè)操作數(shù)。 只要有1 就為1
按位異或(XOR)使用 ^ 表示,操作兩個(gè)操作數(shù)。相同則為 0 , 不同則為 1
左移 | 右移( | 有符號(hào) | 無(wú)符號(hào))

  • 布爾操作符

  • 布爾操作符一共有三個(gè),分別是: 非 , 與 , 或
    (邏輯運(yùn)算符)
  • 01邏輯非 符號(hào):! 說(shuō)明:取反的意思,可以應(yīng)用于任何值, ??!相當(dāng)于沒(méi)有操作。
  • 02邏輯與 符號(hào):&& 說(shuō)明:兩個(gè)值都為真的時(shí)候,結(jié)果為真。屬于短路操作,如果第一個(gè)操作數(shù)能夠決定結(jié)果,那么就不會(huì)再對(duì)第二個(gè)操作數(shù)求值。
  • 03邏輯或 符號(hào):|| 說(shuō)明:兩個(gè)值只要有一個(gè)為真,那么結(jié)果為真。屬于短路操作,如果第一個(gè)操作數(shù)為真,那么久不會(huì)再對(duì)第二個(gè)才做數(shù)求值了。技巧: 可以利用邏輯或短路操作的特點(diǎn)來(lái)避免為變量賦null或undefined值。
var myObject = refObiect || backupObject;
//如果refObject的值不是null,那么它的值將被賦值給myObject
//如果是null,那么就將backupObject的值賦給myObject。
邏輯或(||)
    語(yǔ)法:表達(dá)式1 || 表達(dá)式2
    結(jié)果:
        判斷表達(dá)式1,如果表達(dá)式1為真,那么就返回表達(dá)式1
        如果表達(dá)式1的值為假,那么就返回表達(dá)式2
<script>
    var resultA = 3 || 2;   //3
    var resultB = 0 || 2;   //2
    var resultC = 5 || 0;   //5
    var resultD = 0 || 0;   //0
</script>
邏輯與(&&)
    語(yǔ)法:表達(dá)式1 && 表達(dá)式2
    結(jié)果:
        如果表達(dá)式1為真,返回表達(dá)式2
        如果表達(dá)式1為假,返回表達(dá)式1
<script>
    var resultA = 3 && 2;   //2
    var resultB = 0 && 2;   //0
    var resultC = 5 && 0;   //0
    var resultD = 0 || 0;   //0
</script>
  • 乘性操作符

乘 * 除 / 取余 %

加性操作符

加 + 減 -

  • 說(shuō)明:上述五種操作符在操作數(shù)為非數(shù)值的時(shí)候內(nèi)部會(huì)執(zhí)行自動(dòng)的類(lèi)型轉(zhuǎn)換。

  • 關(guān)系操作符

大于 > 小于 < 小于等于 <= 大于等于 >=說(shuō)明:返回布爾類(lèi)型的值,要么為false,要么為true。

  • 相等操作符

01 相等和不相等[先轉(zhuǎn)換再比較],符號(hào)是 == 和!=

賦值(=)
等于符號(hào)(==)
    比較的時(shí)候只判斷數(shù)值是否是相等的
全等符號(hào)(===)
    比較的時(shí)候不僅要比較數(shù)據(jù)還需要比較類(lèi)型
不等于(!=)
不全等于(!==)
<script>
    var str1 = "讓我掉下眼淚的,不止你的溫柔";
    var str2 = "讓我掉下眼淚的,不止你的溫柔";
    console.log(str1 == str2);

    var test1 = 1;
    var test2 = "1";
    console.log(test1 == test2);    //true
    console.log(test1 === test2);  //false

    //數(shù)組是引用(地址)類(lèi)型,存儲(chǔ)的是指向具體數(shù)據(jù)的地址(引用)
    var arr1 = [1,2,3]; //0x11
    var arr2 = [1,2,3]; //0x22
    console.log(arr1 == arr2);  //true or (false)
</script>
  • 比較的規(guī)則

  • [01] 如果操作數(shù)中有布爾值,則先轉(zhuǎn)換為數(shù)值再比較。

  • [02] 如果是字符串和數(shù)值比較,則先將字符串轉(zhuǎn)換為數(shù)值再比較。

  • [03] 如果是對(duì)象和其他類(lèi)型的值比較,則先調(diào)用對(duì)象的valueOf方法,然后用得到的基本類(lèi)型值去比較。

  • [04] null和undefined是相等的。

  • [05] NaN和NaN不相等。

  • [06] 如果兩個(gè)操作符都是對(duì)象,則比較他們是不是同一個(gè)對(duì)象,如果指向的是同一個(gè)對(duì)象則返回true,否則返回false。

02 全等和不全等[僅比較不轉(zhuǎn)換],符號(hào)是===和!==

  • 比較的規(guī)則

  • [01] null和undefined是不全等的,因?yàn)樗鼈兪遣煌?lèi)型的值。
  • [02] 類(lèi)型相同,且值相等,則返回true,否則返回false。
  • 條件操作符

符號(hào):表達(dá)式1 ? 字面量1 :字面量2說(shuō)明:如果表達(dá)式1的結(jié)果為true,則使用字面量1,否則使用字面量2。

  • 賦值操作符

符號(hào):=、+=、-=、*=、<<=等等
說(shuō)明:使用賦值操作符對(duì)性能而言,沒(méi)有任何的提升,只是簡(jiǎn)化了賦值操作而已。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容