首頁 >web前端 >js教程 >理解 ! JavaScript - 簡單指南

理解 ! JavaScript - 簡單指南

Patricia Arquette
Patricia Arquette原創
2024-11-19 08:10:02576瀏覽

Understanding !! in JavaScript - Simple Guide

見過! ! JavaScript 程式碼中並想知道發生了什麼?讓我們簡單地分解一下。

有什麼作用! !做?

雙感嘆號 (!!) 是將任何值轉換為布林值(true 或 false)的快速方法。就這麼簡單!

可以把它想像成問 JavaScript:「嘿,這個值是否存在並且有意義嗎?」

  • 如果是的話,你就說對了
  • 如果不是,你就錯了

查看實際效果

讓我們來看一些簡單的例子:

// These become true
!!42          // true (any number except 0)
!!"Hello"     // true (any non-empty string)
!!{}          // true (any object)
!![]          // true (any array)

// These become false
!!0           // false
!!""          // false (empty string)
!!null        // false
!!undefined   // false

現實世界的例子

1. 檢查用戶是否提供了姓名

function validateName(name) {
    if (!name) {  // same as if (!!name === false)
        return "Please enter your name";
    }
    return `Thanks, ${name}!`;
}

validateName("")        // "Please enter your name"
validateName("Sarah")   // "Thanks, Sarah!"

2. 檢查API回應是否有數據

function handleResponse(data) {
    const hasData = !!data?.items?.length;

    if (hasData) {
        return "Found some results!";
    }
    return "No results found";
}

handleResponse({items: []})      // "No results found"
handleResponse({items: [1,2,3]}) // "Found some results!"

什麼時候該使用!!?

!!在以下情況特別有用:

  1. 您需要一個真正的布林值,而不是「真」或「假」值
  2. 您正在檢查某個值是否存在且有意義
  3. 你想讓程式碼的意圖非常清晰

哪些價值觀會變成錯的?

這些都是使用 !! 時變成 false 的值:

  • 0
  • ""(空字串)
  • 未定義
  • NaN

其他一切都成真!

專業提示

1. If 語句快捷方式

在 if 語句中,JavaScript 會自動將值轉換為布林值,因此:

if (!!username) {
    // do something
}

等同於:

if (username) {
    // do something
}

2. 使用 Boolean() 代替

有些開發人員喜歡使用 Boolean(),因為它更明顯發生的事情:

Boolean("hello")   // true
Boolean("")        // false
!!("hello")        // true
!!("")            // false

兩者的工作方式完全相同 - 使用對您來說更有意義的一個!

快速回顧

  • !!將值轉換為 true/false
  • 非常適合檢查值是否存在
  • 當你特別需要布林結果時使用它
  • 在 if 語句中,通常不需要它

請記住:最好的程式碼是您的團隊可以輕鬆理解的程式碼。不管你用不! !或 Boolean(),只要保持一致即可!

以上是理解 ! JavaScript - 簡單指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn