Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Область видимости внутри функций (https://javascript.ru/forum/misc/12718-oblast-vidimosti-vnutri-funkcijj.html)

Sweet 30.10.2010 18:08

Я не знаю, что там в "старом javascript-коде", но я использую проверку typeof ... === 'undefined' в случаях, когда мне нужно проверить, есть ли у переменной какое-либо значение (в том числе и false или null). if(!...) не позволяет этого. То есть если твоя функция должна по-любому вывести title, то подойдет if(!title)..., а если есть вариант, что когда в функцию передается false, то title не выводится, то лучше использовать оператор typeof

Kolyaj 01.11.2010 10:21

Цитата:

Сообщение от Sweet
function(title){... // это
function(){ var title = arguments[0];... // и это - эквивалентно

Не совсем. В использовании эквивалентно, но по сути нет.
function f(foo) {
    alert(foo);
    arguments[0] = 5;
    alert(foo);
}

f(1);


По теме: undefined

Пример ТС надо писать
function f(title) {
    title = title || 'Default title';
}

vladlen 02.11.2010 03:01

Цитата:

Сообщение от Sweet (Сообщение 76654)
Как раз таки она может и объявлена, но не определена. Кроме предпоследнего примера, потому что:
x = false; // или null
if(!window.x) alert("Но у переменной же есть значение?!");

Что за бред вы несете?
Изучаем английский по слогам:
defined - объявлена, undefined - не объявлена
Теперь определяем тип, то есть определяем:
false - boolean, вполне себе определенный тип, => if(true){statement}
null - дырка от бублика, не определена, за кулисами будет приведена к типу: "типизирована".


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