Dla mojego zrozumienia jednokierunkowy operator !
wykonuje niejawne konwersje typów i czasami jest używany do konwersji typów.Biorąc pod uwagę najlepsze praktyki, możemy użyć podwójnego operatora jednoargumentowego! w JavaScript?
Tak więc operator !
konwertuje swój operand na boolowski i neguje go.
Teraz:
!!x // Same as Boolean(x)
W rzeczywistości:
!!'true' === Boolean('true') // true
Więc jestem zakładając zarówno !!x
i Boolean(x)
wykonać tę samą czynność.
chciałbym wiedzieć:
- Znasz zastrzeżenia, że mój założenia źle?
- Która metoda powinna być preferowana w kontekście dobrych praktyk?
- Czy znasz jakieś różnice, które należy znać wśród różnych wersji ECMAScript lub dostawców przeglądarek?
Dlaczego ciągle określasz to jako unarne? Czy jest plik binarny! operator? – BoltClock
@BoltClock dzięki za komentarz, dla mojego zrozumienia! jest operatorem jednokierunkowym. Znalazłem to odniesienie w JavaScript: The Definitive Guide, 6th Edition. – GibboK
IMO to nie ma znaczenia. W tym przypadku są takie same. Wolałbym podwójnie negować operator '!!', ponieważ jest mniej pisania. Po prostu bang bang i gotowe. Ale niektórzy twierdzą, że funkcja 'Boolean()' jest bardziej czytelna dla człowieka. – Ogalb