亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS 特殊運(yùn)算符的使用

 更新時(shí)間:2024年09月30日 11:51:37   作者:二川bro  
JavaScript中包含了一系列不常見但功能強(qiáng)大的特殊運(yùn)算符,如空值合并運(yùn)算符(??)、可選鏈運(yùn)算符(?.)等,這些運(yùn)算符在特定場(chǎng)景下極大地簡(jiǎn)化了代碼的復(fù)雜度,并提高了開發(fā)效率,通過深入了解這些特殊運(yùn)算符,開發(fā)者可以更加高效地處理各種數(shù)據(jù)和邏輯

眾多編程語言之中JavaScript ,以其強(qiáng)大而全面的功能深受前端開發(fā)者喜愛。其豐富的運(yùn)算符集,不僅包括了廣泛應(yīng)用的算術(shù)運(yùn)算符、比較運(yùn)算符以及邏輯運(yùn)算符,還蘊(yùn)藏著一系列較為冷門但同樣功能強(qiáng)大的運(yùn)算符。這些不常被提及的運(yùn)算符,或許因它們特定的應(yīng)用場(chǎng)景或是相對(duì)少見的使用頻率,而未能廣泛進(jìn)入開發(fā)者的視野。然而,深入了解并掌握這些運(yùn)算符,無疑能夠?yàn)槲覀兊拈_發(fā)工作增添更多的便利與高效。接下來,讓我們一同了解下哪些冷漠且很適用的運(yùn)算符~

特殊運(yùn)算符號(hào)有哪些?

1. ??(空值合并運(yùn)算符)

空值合并運(yùn)算符 ?? 用于當(dāng)左側(cè)操作數(shù)為 null 或 undefined 時(shí),返回右側(cè)操作數(shù)。

let x = null;
let y = 'default';
let z = x ?? y; // z 的值為 'default'
console.log(z); // 輸出: default

2. ??=(空值合并賦值運(yùn)算符)

空值合并賦值運(yùn)算符 ??= 用于當(dāng)左側(cè)變量為 null 或 undefined 時(shí),將右側(cè)的值賦給左側(cè)的變量。

let x = null;
let y = 'value';
x ??= y; // x 的值變?yōu)?'value'
console.log(x); // 輸出: value

3. ?.(可選鏈運(yùn)算符)

可選鏈運(yùn)算符 ?. 允許我們安全地訪問深層嵌套的屬性,而不用擔(dān)心中間某個(gè)屬性是 null 或 undefined。

let user = { name: 'Alice', address: { city: 'Wonderland' } };
let city = user?.address?.city; // city 的值為 'Wonderland'
console.log(city); // 輸出: Wonderland

let nullUser = null;
let nullCity = nullUser?.address?.city; // nullCity 的值為 undefined
console.log(nullCity); // 輸出: undefined

4. ?=(三元運(yùn)算符的簡(jiǎn)潔形式?實(shí)際上應(yīng)稱為邏輯空賦值運(yùn)算符的誤解)

注意:這里有一個(gè)小誤區(qū),?= 并不是三元運(yùn)算符的簡(jiǎn)潔形式,而是邏輯空賦值運(yùn)算符(Logical Nullish Assignment ??=)的一部分,已在上面介紹。真正的三元運(yùn)算符是 ?:,用于簡(jiǎn)單的條件判斷。

let age = null;
age = age ? age : 18; // 傳統(tǒng)三元運(yùn)算符用法,如果 age 為 null 或 undefined,則賦值為 18
console.log(age); // 輸出: 18

// 使用 ??= 簡(jiǎn)化
let age2 = null;
age2 ??= 18; // 如果 age2 為 null 或 undefined,則賦值為 18
console.log(age2); // 輸出: 18

5. typeof(類型運(yùn)算符)

typeof 運(yùn)算符用于判斷一個(gè)變量的類型。

let x = 'Hello, world!';
console.log(typeof x); // 輸出: string

let y = 42;
console.log(typeof y); // 輸出: number

let z = true;
console.log(typeof z); // 輸出: boolean

let u;
console.log(typeof u); // 輸出: undefined

6. instanceof(實(shí)例運(yùn)算符)

instanceof 運(yùn)算符用于測(cè)試一個(gè)對(duì)象是否在其原型鏈原型上具有一個(gè)構(gòu)造函數(shù)的 prototype 屬性。

class Animal { }
class Dog extends Animal { }

let dog = new Dog();
console.log(dog instanceof Dog); // 輸出: true
console.log(dog instanceof Animal); // 輸出: true

7. in(屬性運(yùn)算符)

in 運(yùn)算符用于檢查對(duì)象是否具有指定的屬性。

let obj = { a: 1, b: 2 };
console.log('a' in obj); // 輸出: true
console.log('c' in obj); // 輸出: false

8. delete(刪除運(yùn)算符)

delete 運(yùn)算符用于刪除對(duì)象的屬性。

let obj = { a: 1, b: 2 };
delete obj.a;
console.log(obj); // 輸出: { b: 2 }

9. void(空運(yùn)算符)

void 運(yùn)算符用于計(jì)算一個(gè)表達(dá)式,并返回 undefined 作為結(jié)果。

let x = void (0); // x 的值為 undefined
console.log(x); // 輸出: undefined

10. ,(逗號(hào)運(yùn)算符)

逗號(hào)運(yùn)算符用于評(píng)估兩個(gè)表達(dá)式,并返回最后一個(gè)表達(dá)式的結(jié)果。

let x = (1, 2); // x 的值為 2
console.log(x); // 輸出: 2

面試技巧

1. 理解并熟悉每個(gè)運(yùn)算符的用途、優(yōu)點(diǎn)

在面試中,對(duì) JavaScript 運(yùn)算符的深刻理解能夠幫助你快速解決算法問題,并寫出更簡(jiǎn)潔、高效的代碼。

2. 注意運(yùn)算符的優(yōu)先級(jí)和結(jié)合性

了解運(yùn)算符的優(yōu)先級(jí)和結(jié)合性(即運(yùn)算順序)對(duì)于避免邏輯錯(cuò)誤至關(guān)重要。例如,*(乘法)的優(yōu)先級(jí)高于 +(加法)。

3. 使用可選鏈運(yùn)算符簡(jiǎn)化代碼

在訪問嵌套對(duì)象屬性時(shí),使用可選鏈運(yùn)算符 ?. 可以避免繁瑣的條件檢查,使代碼更簡(jiǎn)潔、易讀。

4. 利用空值合并運(yùn)算符處理默認(rèn)值

在處理可能為 null 或 undefined 的變量時(shí),使用空值合并運(yùn)算符 ?? 可以方便地設(shè)置默認(rèn)值,減少代碼冗余。

5. 掌握三元運(yùn)算符的簡(jiǎn)潔寫法

三元運(yùn)算符 ?: 是條件判斷的一種簡(jiǎn)潔寫法,可以在一行內(nèi)完成簡(jiǎn)單的條件邏輯,使代碼更加緊湊。

6. 理解 typeof 和 instanceof 的區(qū)別

typeof 用于判斷變量類型,而 instanceof 用于判斷對(duì)象是否是某個(gè)構(gòu)造函數(shù)的實(shí)例,兩者在用途上有所不同。

7. 謹(jǐn)慎使用 delete 運(yùn)算符

delete 運(yùn)算符可以刪除對(duì)象的屬性,但刪除數(shù)組元素時(shí)應(yīng)謹(jǐn)慎,因?yàn)樗粫?huì)改變數(shù)組長(zhǎng)度,只是將元素值設(shè)置為 undefined。

8. 熟悉逗號(hào)運(yùn)算符的用途

逗號(hào)運(yùn)算符在某些情況下可以簡(jiǎn)化代碼,例如在 for 循環(huán)中同時(shí)更新多個(gè)變量。

9. 利用 void 運(yùn)算符避免不必要的返回值

void 運(yùn)算符可以用于避免函數(shù)或表達(dá)式返回不必要的值,確保代碼邏輯的清晰性。

到此這篇關(guān)于JS 特殊運(yùn)算符的使用的文章就介紹到這了,更多相關(guān)JS 特殊運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)比較功能的方法匯總(五種方法)

    微信小程序?qū)崿F(xiàn)比較功能的方法匯總(五種方法)

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)比較功能的方法,本文給大家列舉出五種方式,每種方法通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • JS獲取Promise對(duì)象里面的值問題

    JS獲取Promise對(duì)象里面的值問題

    這篇文章主要介紹了JS如何獲取Promise對(duì)象里面的值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 如何實(shí)現(xiàn)瀏覽器上的右鍵菜單

    如何實(shí)現(xiàn)瀏覽器上的右鍵菜單

    如何實(shí)現(xiàn)瀏覽器上的右鍵菜單...
    2006-07-07
  • 原生js輪播(仿慕課網(wǎng))

    原生js輪播(仿慕課網(wǎng))

    本文主要分享了原生js實(shí)現(xiàn)仿慕課網(wǎng)的輪播效果。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • JavaScript中的原型鏈prototype介紹

    JavaScript中的原型鏈prototype介紹

    這篇文章主要介紹了JavaScript中的原型鏈prototype介紹,本文講解了訪問原型對(duì)象的3種方法,判斷兩個(gè)對(duì)象間是否存在原型鏈關(guān)系的方法等,需要的朋友可以參考下
    2014-12-12
  • 詳解JS中的快速排序與冒泡

    詳解JS中的快速排序與冒泡

    本文主要介紹了快速排序思想與冒泡排序思想。具有一定的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • js布局實(shí)現(xiàn)單選按鈕控件

    js布局實(shí)現(xiàn)單選按鈕控件

    這篇文章主要為大家詳細(xì)介紹了js布局實(shí)現(xiàn)單選按鈕控件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • JS實(shí)現(xiàn)數(shù)組去重的常用方法

    JS實(shí)現(xiàn)數(shù)組去重的常用方法

    在JavaScript開發(fā)中,數(shù)組操作是不可或缺的一部分,數(shù)組去重作為數(shù)據(jù)處理的一個(gè)常見需求,旨在從一個(gè)可能包含重復(fù)元素的數(shù)組中移除重復(fù)項(xiàng),只保留唯一值,本文將詳細(xì)介紹幾種常見的數(shù)組去重方法,并結(jié)合實(shí)際應(yīng)用場(chǎng)景進(jìn)行探討,需要的朋友可以參考下
    2024-12-12
  • js表數(shù)據(jù)排序 sort table data

    js表數(shù)據(jù)排序 sort table data

    對(duì)于表格的排序,是很不錯(cuò)的一個(gè)功能,方便用戶快速的分析一些數(shù)據(jù)。
    2009-02-02
  • 瀏覽器兼容性問題大匯總

    瀏覽器兼容性問題大匯總

    本文給大家介紹了42種瀏覽器兼容性問題大匯總的相關(guān)知識(shí),本文介紹的非常詳細(xì),感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12

最新評(píng)論