Baseline Widely available
ÐогиÑеÑкий опеÑаÑÐ¾Ñ ÐÐ (!
) (логиÑеÑкое оÑÑиÑание) менÑÐµÑ Ð»Ð¾Ð³Ð¸ÑеÑкое знаÑение опеÑанда Ñ Ð¸ÑÑÐ¸Ð½Ñ Ð² Ð»Ð¾Ð¶Ñ Ð¸ наобоÑоÑ. ÐбÑÑно он иÑполÑзÑеÑÑÑ Ñ Ð±ÑлевÑми
(логиÑеÑкими) знаÑениÑми. ÐÑи иÑполÑзовании Ñ Ð»ÑбÑми дÑÑгими знаÑениÑми, еÑли опеÑанд Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑеобÑазован в true
, Ñо веÑнÑÑ false
; в пÑоÑивном ÑлÑÑае он возвÑаÑаеÑÑÑ true
.
const a = 3;
const b = -2;
console.log(!(a > 0 || b > 0));
// Expected output: false
СинÑакÑÐ¸Ñ ÐпиÑание
ÐозвÑаÑÐ°ÐµÑ false
, еÑли опеÑанд Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑеобÑазован в true
; в пÑоÑивном ÑлÑÑае возвÑаÑаеÑÑÑ true
.
ÐÑли знаÑение Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑеобÑазовано в true
, Ñо оно ÑаÑÑмаÑÑиваеÑÑÑ ÐºÐ°Ðº иÑÑинноподобное (truthy). ÐÑли же знаÑение Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑеобÑазовано в false
, Ñо оно назÑваеÑÑÑ Ð»Ð¾Ð¶Ð½Ð¾Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñм (falsy).
ÐÑимеÑÑ Ð²ÑÑажений, коÑоÑÑе могÑÑ Ð±ÑÑÑ Ð¿ÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ñ Ð² false
:
null
;NaN
;0
;""
, ''
, ``
);undefined
.ÐеÑмоÑÑÑ Ð½Ð° Ñо, ÑÑо опеÑаÑÐ¾Ñ !
Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ñ Ð¾Ð¿ÐµÑандами, знаÑÐµÐ½Ð¸Ñ ÐºÐ¾ÑоÑÑÑ
не оÑноÑиÑÑÑ Ðº ÑÐ¸Ð¿Ñ Boolean, ÑÑо вÑÑ Ñавно бÑлевÑй опеÑаÑоÑ, поÑколÑÐºÑ ÐµÐ³Ð¾ возвÑаÑаемое знаÑение вÑегда можно пÑеобÑазоваÑÑ Ð² бÑлевÑй пÑимиÑив. ЧÑÐ¾Ð±Ñ Ñвно пÑеобÑазоваÑÑ Ð²Ð¾Ð·Ð²ÑаÑаемое знаÑение ÑÑого опеÑаÑоÑа (или вообÑе лÑбое вÑÑажение) в ÑооÑвеÑÑÑвÑÑÑее знаÑение бÑлевого Ñипа, иÑполÑзÑйÑе двойной опеÑаÑÐ¾Ñ ÐРили конÑÑÑÑкÑÐ¾Ñ Boolean
.
Ð ÑледÑÑÑем коде Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð¿ÑимеÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð¿ÐµÑаÑоÑа !
(логиÑеÑкое ÐÐ).
n1 = !true; // !t веÑнÑÑ false
n2 = !false; // !f веÑнÑÑ true
n3 = !""; // !f веÑнÑÑ true
n4 = !"Cat"; // !t веÑнÑÑ false
Ðвойное ÐÐ (!!
)
Ðожно один за дÑÑгим иÑполÑзоваÑÑ Ð¿Ð°ÑÑ Ð¾Ð¿ÐµÑаÑоÑов ÐÐ, ÑÑÐ¾Ð±Ñ ÑвнÑм обÑазом пÑинÑдиÑелÑно пÑеобÑазоваÑÑ Ð»Ñбое знаÑение в ÑооÑвеÑÑÑвÑÑÑий бÑлевÑй пÑимиÑив. ÐÑеобÑазование оÑновано на "иÑÑинноподобноÑÑи" или "ложноподобноÑÑи" знаÑÐµÐ½Ð¸Ñ (Ñм. truthy и falsy)).
ТоÑно Ñакое же пÑеобÑазование Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñполнено Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑнкÑии Boolean
.
n1 = !!true; // !!truthy веÑнÑÑ true
n2 = !!{}; // !!truthy веÑнÑÑ true: лÑбой обÑÐµÐºÑ - иÑÑинноподобнÑй...
n3 = !!new Boolean(false); // ...даже Boolean-обÑÐµÐºÑ Ñо знаÑением false из вÑзова .valueOf()!
n4 = !!false; // !!falsy веÑнÑÑ false
n5 = !!""; // !!falsy веÑнÑÑ false
n6 = !!Boolean(false); // !!falsy веÑнÑÑ false
ÐонвеÑÑаÑÐ¸Ñ Ð¾Ð¿ÐµÑаÑоÑов ÐÐ
СледÑÑÑÐ°Ñ Ð¾Ð¿ÐµÑаÑÐ¸Ñ Ñ Ð±ÑлевÑми знаÑениÑми:
вÑегда ÑквиваленÑна:
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе ÑакжеRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4