es6 значение двойных восклицательных знаков

1

в некотором коде es6 я вижу следующее:

let layer_combined = layers.map(getLayer).filter(l => !!l);

Каково значение !! в filter() return?

  • 2
    его короткая рука для преобразования значения truey / falsey в логическое значение true / false
  • 0
    То же, что .filter(Boolean)
Теги:

1 ответ

-2
Лучший ответ

Это способ кастинга к логическому с двойным отрицанием.

Единственное ! отрицание создает истинное/ложное значение, но оно противоположно тому, что вы хотите. Двойное отрицание дает значение true/false, которое соответствует исходному намерению.

Попытайся:

!!0 // false
!!1 // true
!!"test" // true
!!null // false
  • 4
    Этот вопрос является вопиющим дубликатом 9,5 лет назад, менее чем через год после начала Stackoverflow. Он должен быть закрыт как дубликат, а не отвечать.
  • 0
    @GeorgeJempty Ответ на вопрос дважды за десять лет не должен рассматриваться как проблема.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню