1. 程式人生 > 程式設計 >js中不常見的運算子與操作符總結

js中不常見的運算子與操作符總結

常用運算子和操作符總結

類別

操作符

算術操作符 +、 –、 *、 /、 %(取模)
字串操作符 + 字串連線 +=字串連線複合
布林操作符 !、 &&、 ||
一元操作符 ++ 、 -- 、 +(一元加)、 -(一元減)
關係比較操作符 < 、 <= 、 > 、>=、 != 、 == 、 === 、 !==
按位操作符 ~ 按位非 &按位與 | 按位或 ^按位異或 <<左移 >>有符號右移 >>>無符號右移
賦值操作符 = 、 複合賦值(+=、-=、*=、%=) 複合按位賦值(~=、&=、|=、^=、<<=、>>=、>>>=)
物件操作符 .屬性訪問、[]屬性或陣列訪問、 new呼叫建構函式常見物件、delete變數屬性刪除、void(返回undefined)、in判斷屬性、instanceof原型判斷
其它操作符 ?: 條件操作符、,逗號操作符http://www.cppcns.com
、()分組操作、typeof型別操作符

中不常見的運算子與操作符

空值合併運算子: ??

當左側的運算元為 null 或者 undefined 時,返回其右側運算元,否則返回左側運算元。

null ?? 'huli' // huli
undefined ?? 'huli'  // undefinehttp://www.cppcns.comd
'' ?? 'huli' // ''
[] ?? 'huli' // []
({}) ?? 'huli'  // {}
NaN ?? 'huli' // NaN
false ?? 'huli' // false
0 ?? 'huli'  // 0

邏輯空賦值: ??=

邏輯空賦值運算子 (x ??= y) 僅在 x 是 nullish (null 或 undefined) 時對其賦值。

const a = { duration: 50 };

a.duration ??= 10;
console.log(a.duration);
// expected output: 50

a.speed ??= 25;
console.log(a.speed);
// expected output: 25

邏輯或: ||

存在真則為真,以前面的為準

const a = 3;
const b = -2;
console.log(a > 0 || b > 0);  // true

可以是false的值

null
undefined
NaN
"" 與 ''
0
false

邏輯或賦值: ||=

有則返回,沒有則賦值

const a = { duration: 50,title: '' };

a.duration ||= 10;
console.log(a.duration);
// expected output: 50

a.title ||= 'title is empty.';
console.log(a.title);
// expected output: "title is empty"

邏輯與: &&

都存在則為真,以後面的為準

const a = 3;
const b = -2;

console.log(a > 0 && b > 0);
// expected output: false

邏輯與賦值: &&=

存在則賦值

let a = 1;
let b = 0;

a &&= 2;
console.log(a);
// expected output: 2

b &&= 2;
console.log(b);
// expected output: 0

可選鏈操作符: ?.

可選鏈操作符( ?. )允許讀取位於連線物件鏈深處的屬性的值,而不必明確驗證鏈中的每個引用是否有效。?. 操作符的功能類似於 . 鏈式操作符,不同之處在於,在引用為空(nullish ) (null 或者 undefined) 的情況下不會引起錯誤,該表示式短路返回值是 undefined。與函式呼叫一起使用時,如果給定的函式不存在,則返回 undefined。

const adventurer = {
  name: 'Alice',cat: {
    name: 'Dinah'
  }
};

const dogName = adventurer.dog?.name;
console.log(dogName);
// expected output: undefined

console.log(adventurer.someNonExistentMethod?.());
// expected output: undefined

總結

到此這篇關於js中不常見的運算子與操作符的文章就介紹到這了,更多相關js運算子與操作符內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!