Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #331 (permalink)  
Старый 29.07.2012, 17:10
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

x-yuri,
Maxmaxmахimus,
он имел ввиду что переменная может существовать при этом иметь значение undefined и возможно лучший вариант проверки на наличие переменной это try:
try{
 alert(lol);
}
catch(e){
 alert("lol is not defined")
}


lol = "LOL";
try{
 alert(lol);
}
catch(e){
 alert("lol is not defined")
}
Ответить с цитированием
  #332 (permalink)  
Старый 29.07.2012, 17:41
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

if ( ! window.lol) {
    alert("lol is not defined");
}
Ответить с цитированием
  #333 (permalink)  
Старый 29.07.2012, 17:47
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

x-yuri,
тоже верно
Ответить с цитированием
  #334 (permalink)  
Старый 29.07.2012, 19:07
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Кстати, хотел спросить, некоторые делают через try, некоторые просто проверяют на существование (не null, не undefined и т.п или всё вместе), результат идентичен, я пока сторонник второго способа, так как зачем лишний раз приплетать ошибки.
Кто какими рассуждениями пользуется для выбора того или иного способа?

Последний раз редактировалось bes, 29.07.2012 в 19:10.
Ответить с цитированием
  #335 (permalink)  
Старый 29.07.2012, 20:08
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

использую try, когда без него не обойтись
Ответить с цитированием
  #336 (permalink)  
Старый 29.07.2012, 20:18
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от x-yuri
использую try, когда без него не обойтись
Да, только когда без него действительно не обойтись, если можно сделать простую проверку, зачем привлекать формирование исключения (к тому же это скорее всего более затратные операции)
Ответить с цитированием
  #337 (permalink)  
Старый 30.07.2012, 02:02
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от bes
более затратные операции
Меня тоже иногда сплющивает и я начинаю считать затраты операций. Затем смотрю на создание какого-нибудь объекта, типа виджет/модуль и меня отпускает.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #338 (permalink)  
Старый 31.07.2012, 10:26
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

оо люди я кое что откопал по поводу темы

Ответить с цитированием
  #339 (permalink)  
Старый 31.07.2012, 14:05
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от x-yuri Посмотреть сообщение
Вообще, давай лучше ты объяснишь сначала, что значит:

А то я не уверен, что правильно тебя понял.
я имел в виду, что использую его в практически любой ситуации, где нужно проверить существование свойства в объекте.
Ответить с цитированием
  #340 (permalink)  
Старый 31.07.2012, 17:23
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Ну хороше, есть функция:
function someFunction(..., options) {
    if ('someOption' in options) {
        ...
    }
}

Если я хочу передать в функцию значение в случае истинности некоторого условия, я должен написать:
someFuction(..., $.extend({<otherOptions>},
    <someCondition> ? {someOption: <someValue>} : {}));

Если же поступить таким образом:
function someFunction(..., options) {
    if (options.someOption) {
        ...
    }
}

Я смогу вызвать ее следующим образом:
someFuction(..., {<otherOptions>, someOption: <someCondition> ? <someValue> : null});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Баги Opera пишем сюда devote Оффтопик 101 08.08.2013 05:56
Вопрос по PHP. Можно ли это назвать классической моделью MVC Duda.Ml1986@gmail.com Серверные языки и технологии 1 08.02.2012 22:51
http://gigalit.info - Мои контакты Маэстро Ваши сайты и скрипты 70 08.12.2011 03:12
фрактальный сыр x-yuri Оффтопик 76 23.11.2011 21:59
Можно легко узнать разрешение экрана. А как именно JS это узнает? jungle Общие вопросы Javascript 12 29.11.2010 01:43