English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Preface
First of all, you need to know that there are 6 values in JavaScript that are false, namely: 0, '', null, undefined, NaN and false, others (including {}, [], Infinity) are true.
You can use the Boolean() function or double negation to get the boolean value of an object, for example, Boolean(undefined) and !!undefined can also get the boolean value false,
For 0, '', null, undefined, NaN, {}, [], Infinity, the boolean values are respectively false false false false false true true true.
Therefore, one thing we know is that the boolean value of an object is true, even if it is an empty object {}.
bool value conversion
Data type | bool value conversion |
---|---|
undefined | undefined is converted to false |
Object | null is converted to false, others are true |
Boolean | false is converted to false, true is converted to true |
Number | 0, NaN is converted to false, others are true |
String | "" is converted to false, others are true |
"&&"
The calculation rule of the && operator in JavaScript is as follows:
If the value of the expression on the left side of && is true, then return the value of the right expression; otherwise return the value of the left expression. When multiple && expressions are calculated together, return the value of the first expression that is calculated as false, and if all expressions have true results, return the value of the last expression calculated.
const aa = {'name': 'xx'}; const bb = aa && aa.age; // bb outputs undefined; let cc; const dd = cc && cc.name ? cc.name : undefined; // dd outputs undefined const dd = cc && cc.name; // dd restituisce undefined;
I risultati delle due righe di codice superiori sono gli stessi, durante la scrittura del codice in precedenza, ho sempre usato questo metodo, ma ho scoperto che alcune coperture di test unitari non sono coperte, portando a una copertura di branch di test unitari molto bassa, cambiando questo metodo può risolvere questo problema in modo efficace, gli effetti di queste due righe sono gli stessi.
"||"
Le regole di calcolo dell'operatore "||" in JavaScript sono le seguenti:
Se il valore dell'espressione a sinistra dell'operatore "||" è vero, viene restituito il valore dell'espressione a sinistra; altrimenti viene restituito il valore dell'espressione a destra. Quando più espressioni "||" sono calcolate insieme, viene restituito il valore dell'espressione per cui il risultato è true, se tutti i risultati delle espressioni sono false, altrimenti viene restituito il valore dell'espressione più a destra.
const aa = false || 'xx'; // aa restituisce 'xx'
"!!"
"!!" è un'operazione che forza la conversione dell'espressione in valore booleano, il risultato è true o false.
const aa = 'xx'; const bb = !!aa; // bb restituisce true const cc = !!(NaN || undefined || null || 0 || '' ); // cc è false;
Sintesi
Questo è tutto il contenuto dell'articolo, speriamo che il contenuto di questo articolo abbia un valore di riferimento per lo studio o il lavoro di tutti. Se hai domande, puoi lasciare un messaggio per scambiare opinioni, grazie per il supporto di Corso di urla.
Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright è della proprietà del rispettivo autore, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata la veridicità, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.