簡體   English   中英

這個JavaScript中的布爾返回值如何工作?

[英]How does the Boolean return value in this JavaScript work?

我對編程很陌生,並且一直在努力自學。 我在網上遇到了以下問題,並嘗試解決它,但遇到了死胡同:

“編寫一個接受三個參數的函數,如果只有其中一個參數是真值則返回true,否則返回false。不要使用&&或||運算符或if語句。”

這讓我在過去的兩天里難過,所以我轉向了解決方案,我很難搞清楚:

function onlyOne(x, y, z) {
    return (!!x + !!y + !!z === 1);
}

我理解語法,但我不理解邏輯或為什么這樣做。 有人能幫助我嗎? 我想了解代碼的工作原理,而不僅僅是記憶語法。

!! 將值轉換為實際的布爾值。 當您對布爾值執行加法時,JavaScript會將它們強制轉換為數字, false0true1

基本上, (!!x + !!y + !!z === 1)xyztruefalse ,然后將它們全部加在一起。 如果其中只有一個是真實的,則值為1=== 1將為真,否則為假。

這是一個示例,顯示如何添加布爾值:

 console.log(false + false); // 0 console.log(false + true); // 1 console.log(true + true); // 2 

!! 將您的變量“強制轉換”為一個布爾值,當通過+運算符轉換為數字時,該布爾值只能具有值01 如果你考慮一下,如果只有一個變量為真,你只能在將它們加在一起后得到1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM