學(xué)習(xí)筆記4-表達(dá)式和運(yùn)算符

表達(dá)式和運(yùn)算符

運(yùn)算符

運(yùn)算符 說(shuō)明 示例
+ 加法 3+4 //7
- 減法 4-2 //2
/ 除法 4/2 //2
* 乘法 3*4 //12
% 取余 4%3 //1
- 負(fù)號(hào) -4
+ 正號(hào) +4
++ 自增 ++x, x++
-- 自減 --x,x--

自增和自減

前置自增(自減),優(yōu)先增加(減少),然后賦值給變量;
后置自增(自減),優(yōu)先賦值給變量,然后增加(減少);
如果自增(自減)不賦值給其他變量,前置后置效果是一樣的;

    let number;
    let number1 = 10;
    number = ++number1;
    console.log(number, number1); // 11 11
    number = number1++;
    console.log(number, number1); // 11 12

    number = --number1;
    console.log(number, number1); // 11 11
    number = number1--;
    console.log(number, number1); // 11 10

    number1++;
    console.log(number1); // 11
    ++number1;
    console.log(number1); // 12

運(yùn)算符優(yōu)先級(jí)

高優(yōu)先級(jí)運(yùn)算優(yōu)先低優(yōu)先級(jí)運(yùn)算符,搞不清楚時(shí),善用括號(hào)

比較運(yùn)算符

  • 相等(===, ==)\
  1. ===,嚴(yán)格相等,引用的是相同的對(duì)象,或者擁有相同類型(基本類型)和相同的值;
  2. ==,非嚴(yán)格相等,屬于同一個(gè)對(duì)象,或者強(qiáng)制轉(zhuǎn)化為相同的值;
    let num = 33;
    let str = '33';
    console.log(num === str); // false
    console.log(num == str); // true
  • 關(guān)系運(yùn)算符
    小于(<), 小于等于(<=), 大于(>), 大于等于(>=)
    比較運(yùn)算符比較的是擁有自然排序特性的數(shù)據(jù)類型,比如,字符串,數(shù)字;

比較數(shù)字

  • NaN與任何值不相等,包括自己(NaN)
  • 小數(shù)比較時(shí),特別注意,他們之間不要直接比較,而是通過(guò)差值和Number.EPSILON比較;
    // 因?yàn)殡p精度問(wèn)題,此循環(huán)會(huì)一致運(yùn)行的
    let number = 0.1;
    while (true) {
        number += 0.1;
        if (number === 0.3) break;
        console.log(number);
    }

    let number = 0.1;
    while (true) {
        number += 0.1;
        if (Math.abs(number - 0.3) < Number.EPSILON) break;
        console.log(number);
    }

真值和假值

  1. 假值
    • undefined
    • null
    • false
    • 0
    • NaN
  2. 除了假值,全為真值,驚喜不

與,或和非

與(&&) 或(||) 非(!)
同時(shí)滿足為真 滿足一個(gè)條件即為真 取反
x y x&&y
false false false
true false false
false true false
true true true
x y x||y
false false false
true false true
false true true
true true true
x !x
false true
true false

條件運(yùn)算符

表達(dá)式1 ? 表達(dá)式1為true表達(dá)式 : 表達(dá)式1為false表達(dá)式

位運(yùn)算符

運(yùn)算符 描述 示例
& 位與 0b1 & 0b0 = 0b0
| 位或 0b1 | 0b0 = 0b1
^ 位異或 0b1 ^ 0b0 = 0b1, 0b1 ^ 0b1 = 0b0
~ 位非 ~0b1 = 0b0, ~0b0 = 0b1
<< 左移位 0b1 << 1 = 0b10
>> 右移位 0b10 >> 1 = 0b1
<< 補(bǔ)零右移位 1 << 1 = 0b10

類型判斷運(yùn)算符

表達(dá)式 返回值
typeof undefined "undefined"
typeof null "object"
typeof {} "object"
typeof true "boolean"
typeof 1 "number"
typeof "" "string"
typeof Symbol() "symbol"
typeof function(){} "function"

解構(gòu)賦值

解構(gòu)賦值,允許把一個(gè)對(duì)象或者數(shù)組分解成多個(gè)單獨(dú)的值

    const obj = { a: 2, b: 3};
    let {a, b} = obj;
    console.log(a, b); //2, 3

    const arr = [1, 2, 3];
    let [a, b] = arr;
    console.log(a, b); //1, 2

    const arr = [1, 2, 3, 4];
    let [a, b, ...rest] = arr;
    console.log(a, b, rest); //1, 2, [3, 4]

展開(kāi)運(yùn)算符(...),應(yīng)用于數(shù)組或者對(duì)象。 一個(gè)對(duì)數(shù)組或者對(duì)象進(jìn)行展開(kāi)插值 一個(gè)是對(duì)數(shù)組或者對(duì)象進(jìn)行局部的賦值

對(duì)象和數(shù)組運(yùn)算符

運(yùn)算符 描述
. 成員訪問(wèn)
[] 成員訪問(wèn)
in 判斷屬性是否存在
new 實(shí)例化對(duì)象
instanceof 原型鏈測(cè)試
... 展開(kāi)運(yùn)算符
delete 刪除運(yù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)容