PavelK
@PavelK

Насколько правильно использовать выражение «if(!!object.var)» что бы определить, что переменная в объекте есть и она не false?

Приветствую!
Часто приходиться проверять, что некая переменная в объекте есть и она не ложна ('0' или 'false'), делаю это так:
my = {
  var: '123'
}

if (!!my.var) {
	alert("var: "+ my.var);
}

Работать то работает, но может быть кто-нибудь подскажет, насколько это "правильно" (имею ввиду поддержка браузерами, подводные камни и т.д.) ?

P.S. https://jsfiddle.net/wt8jcmc8/3/
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
!!my.var

просто думал будет более "логично/хороший тон"


Особого смысла не вижу. Делайте так, как вам больше нравится.
Можете даже писать if(true == my.var){ ... }, главное - чтобы ваш код был однотонным и подобные проверки в нем были в одном стиле.

Я так вообще использую вот такую (if("var" in my && my.var){ ... }) запись по ряду, не относящихся к вопросу, причин.

-----------
Меня больше волнует вот это:
var my = {
  var :  '123'
}


Если уж используете KeyWord'ы в качестве имен для свойств объекта (var), то заключайте их в кавычки. Иначе это может привести к ошибкам в некоторых браузерах (к примеру, в IE8).

//Bad
var my = {
  var : 1,
  new : 2
}

//Good
var my = {
  "var" : 1,
  "new" : 2
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы