最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS 特殊運算符的使用

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

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

特殊運算符號有哪些?

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

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

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

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

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

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

3. ?.(可選鏈運算符)

可選鏈運算符 ?. 允許我們安全地訪問深層嵌套的屬性,而不用擔(dān)心中間某個屬性是 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īng)稱為邏輯空賦值運算符的誤解)

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

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

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

5. typeof(類型運算符)

typeof 運算符用于判斷一個變量的類型。

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(實例運算符)

instanceof 運算符用于測試一個對象是否在其原型鏈原型上具有一個構(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(屬性運算符)

in 運算符用于檢查對象是否具有指定的屬性。

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

8. delete(刪除運算符)

delete 運算符用于刪除對象的屬性。

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

9. void(空運算符)

void 運算符用于計算一個表達式,并返回 undefined 作為結(jié)果。

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

10. ,(逗號運算符)

逗號運算符用于評估兩個表達式,并返回最后一個表達式的結(jié)果。

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

面試技巧

1. 理解并熟悉每個運算符的用途、優(yōu)點

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

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

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

3. 使用可選鏈運算符簡化代碼

在訪問嵌套對象屬性時,使用可選鏈運算符 ?. 可以避免繁瑣的條件檢查,使代碼更簡潔、易讀。

4. 利用空值合并運算符處理默認值

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

5. 掌握三元運算符的簡潔寫法

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

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

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

7. 謹慎使用 delete 運算符

delete 運算符可以刪除對象的屬性,但刪除數(shù)組元素時應(yīng)謹慎,因為它不會改變數(shù)組長度,只是將元素值設(shè)置為 undefined。

8. 熟悉逗號運算符的用途

逗號運算符在某些情況下可以簡化代碼,例如在 for 循環(huán)中同時更新多個變量。

9. 利用 void 運算符避免不必要的返回值

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

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

相關(guān)文章

  • JavaScript canvas實現(xiàn)帶有陰影的圖形和文字

    JavaScript canvas實現(xiàn)帶有陰影的圖形和文字

    這篇文章主要為大家詳細介紹了JavaScript canvas實現(xiàn)帶有陰影的圖形和文字,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • JS如何使用正則表達式(match)截取括號中的文字和數(shù)字

    JS如何使用正則表達式(match)截取括號中的文字和數(shù)字

    正則表達式是一種用來匹配文本模式的工具,這篇文章主要給大家介紹了關(guān)于JS如何使用正則表達式(match)截取括號中文字和數(shù)字的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • 30分鐘快速入門掌握ES6/ES2015的核心內(nèi)容(下)

    30分鐘快速入門掌握ES6/ES2015的核心內(nèi)容(下)

    這篇文章主要給大家介紹了如何通過30分鐘快速入門掌握ES6/ES2015的核心內(nèi)容的相關(guān)資料,之前給大家介紹過基礎(chǔ)的一些內(nèi)容,下面繼續(xù)來介紹一些其他的新特性,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • JavaScript實現(xiàn)酷炫的鼠標拖尾特效

    JavaScript實現(xiàn)酷炫的鼠標拖尾特效

    這篇文章主要為大家介紹了通過JavaScript實現(xiàn)的一個超級好看的鼠標拖尾特效,文中的示例代碼講解詳細,對我們學(xué)習(xí)JavaScript有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2021-12-12
  • JS實現(xiàn)非首屏圖片延遲加載的示例

    JS實現(xiàn)非首屏圖片延遲加載的示例

    下面小編就為大家分享一篇用JS實現(xiàn)非首屏圖片延遲加載的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • JointJS JavaScript流程圖繪制框架解析

    JointJS JavaScript流程圖繪制框架解析

    這篇文章主要介紹了JointJS JavaScript流程圖繪制框架解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 百度判斷手機終端并自動跳轉(zhuǎn)js代碼及使用實例

    百度判斷手機終端并自動跳轉(zhuǎn)js代碼及使用實例

    這篇文章主要介紹了百度判斷手機終端并自動跳轉(zhuǎn)js代碼及使用實例,需要的朋友可以參考下
    2014-06-06
  • Three.JS實現(xiàn)三維場景

    Three.JS實現(xiàn)三維場景

    這篇文章主要為大家詳細介紹了Three.JS實現(xiàn)三維場景,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • javascript實現(xiàn)輸入框內(nèi)容提示及隱藏功能

    javascript實現(xiàn)輸入框內(nèi)容提示及隱藏功能

    這篇文章主要介紹了javascript實現(xiàn)輸入框內(nèi)容提示及隱藏功能,實現(xiàn)方法真的超簡單,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2021-09-09
  • JavaScript各類型的關(guān)系圖解

    JavaScript各類型的關(guān)系圖解

    這篇文章主要通過一張圖讓你看懂JavaScript各類型的關(guān)系,需要的朋友可以參考下
    2015-10-10

最新評論

铅山县| 射洪县| 图木舒克市| 太和县| 九龙城区| 伊吾县| 秭归县| 辉县市| 阿克陶县| 天气| 临沧市| 长宁区| 正宁县| 玉屏| 南川市| 玛多县| 如皋市| 甘泉县| 明星| 本溪市| 盖州市| 佛学| 本溪| 灵寿县| 锦州市| 广宗县| 石楼县| 贺兰县| 贡嘎县| 宁城县| 万源市| 德安县| 东港市| 静宁县| 元氏县| 钟山县| 榆林市| 合肥市| 石嘴山市| 滕州市| 山西省|