Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Можно ли считать это началом интернет цензуры ? (https://javascript.ru/forum/offtopic/28942-mozhno-li-schitat-ehto-nachalom-internet-cenzury.html)

Dim@ 29.07.2012 17:10

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")
}

x-yuri 29.07.2012 17:41

if ( ! window.lol) {
    alert("lol is not defined");
}

Dim@ 29.07.2012 17:47

x-yuri,
тоже верно :)

bes 29.07.2012 19:07

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

x-yuri 29.07.2012 20:08

использую try, когда без него не обойтись

bes 29.07.2012 20:18

Цитата:

Сообщение от x-yuri
использую try, когда без него не обойтись

Да, только когда без него действительно не обойтись, если можно сделать простую проверку, зачем привлекать формирование исключения (к тому же это скорее всего более затратные операции)

Gozar 30.07.2012 02:02

Цитата:

Сообщение от bes
более затратные операции

Меня тоже иногда сплющивает и я начинаю считать затраты операций. Затем смотрю на создание какого-нибудь объекта, типа виджет/модуль и меня отпускает.

Dim@ 31.07.2012 10:26

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


melky 31.07.2012 14:05

Цитата:

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

А то я не уверен, что правильно тебя понял.

:D я имел в виду, что использую его в практически любой ситуации, где нужно проверить существование свойства в объекте.

x-yuri 31.07.2012 17:23

Ну хороше, есть функция:
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});


Часовой пояс GMT +3, время: 13:20.