/ / Operatore di assegnazione bit a bit per Boolean anziché Espressione più lunga (| = operatore) - javascript, booleano, manipolazione dei bit

Operatore di Assegnazione bit a bit per Booleano anziché Espressione più lunga (| = operatore) - javascript, booleano, manipolazione dei bit

Domanda

Un mio amico chiede se potrebbe usare:

result |= condition

Invece di:

result = result || condition

in javascript, per operazioni booleane.

Sono ben consapevole che uno è bit a bit e l'altro è logico. Tuttavia, quale sarebbe l'effetto sulle variabili booleane?

Non sono attualmente davanti al mio computer ma mi chiedo anche se ci possa essere una cosa come a ||= operatore.

Aggiornare

Ho appena capito che a boolean il valore è essentialy a 1 bit value. Questo significa che per booleans il logical or ha lo stesso di bitewise or ?

Così a|=b sarebbe equivalente a a=a|b ?

risposte:

1 per risposta № 1

Questo significa che per i booleani è logico o ha lo stesso di bitewise o?

Nel tuo caso, un po '.

Quando si usano le espressioni logiche, gli operandi possono essere true-ish o false-ish. Un'espressione OR qui restituisce il primo che è true-ish (non necessariamente il booleano true), o se nessuno è, l'ultimo operando.

result || condition

ritorna result Se result è vero-ish, altrimenti condition

Quando si usano espressioni bitwise, gli operandi lo sonointeri a 32 bit con segno. Se lo si limita a un bit, questo assomiglia in qualche modo al comportamento delle espressioni logiche: Se un bit è impostato, un'espressione OR restituisce 1.

result | condition

Restituisce un intero con segno a 32 bit con valore 0 o 1 per gli operandi convertibili in un numero intero a 32 bit con solo il bit meno significativo utilizzato.

Tuttavia, quando si utilizzano espressioni bitwise sugli operandi che non sono un numero intero a 32 bit, le conversioni implicite a 32 bit interi devono essere eseguite e potrebbero esserci ulteriori casi limite. Non è consigliabile utilizzare espressioni bitwise per operandi logici.