2013-04-05 2 views
1

Есть ли разница (в JS) между использованием двойного отрицательного !! и не использовать его вообще?разница между if (!! variable) и, если (переменная)?

Например

if (!!variable){... против if (variable){...

Я знаю, что бывают случаи, когда я получил предупреждение, используя 2-й способ ..

Когда следует использовать каждый? и когда каждый бросит предупреждение в консоль? (для переменных, объектов, массивов и т. д.)

Спасибо!

+3

http://stackoverflow.com/questions/4686583/can-someone-explain-this-double-negative-trick в основном преобразует его в логическое значение. – smerny

ответ

3

Существует разница в назначении его, но не для его использования в условном выражении. Причина, по которой используется !!, заключается в том, что первый ! преобразует вашу переменную в ее правдивую оценку, а затем not. Таким образом, «привет» становится истинным, затем отрицается, становится ложным, а второй ! будет отрицать ложное, в результате получится true. Это может быть желательно, когда вы пытаетесь получить значение thruthy от переменной. Тем не менее, это не так много, если сделать это в выражении if.

+1

Огромное спасибо! «когда пытаешься получить значение« труп », это отличный способ объяснить это. благодаря! Я вижу, что это используется при проверке наличия вещей, отличных от переменных, что имеет смысл. –

3

В данном конкретном случае нет никакой разницы. Фактически, !!variable расточительно.

Однако в более общих случаях он переводит переменную в булево. Лично я нашел это полезным при отладке и узнать, какие значения являются правдивыми и ложными.

Смежные вопросы