Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос про typeof (https://javascript.ru/forum/misc/56752-vopros-pro-typeof.html)

Decode 02.07.2015 23:38

Вопрос про typeof
 
var x = 1;
if (function f(){}) { // true, т.к. объект
    x += typeof f;
}
x; // "1undefined"


Правильно ли я понимаю, что на функцию никто не ссылается и она удаляется из памяти? В результате f становится undefined.

Erolast 03.07.2015 07:42

Цитата:

на функцию никто не ссылается и она удаляется из памяти
Да.

Цитата:

В результате f становится undefined.
Нет. typeof f изначально было равно undefined, потому что никакой переменной с названием f не создавалось.

caetus 03.07.2015 17:35

Цитата:

Сообщение от Rise (Сообщение 377453)
Decode, f доступно только изнутри самой функции, поскольку это именованное функциональное выражение, даже если бы была ссылка на функцию результат был бы тот же:

var x = 1;
var link = function f(){};
if (link) {
    x += typeof f;
}
alert(x);


function f(){};
if (f) {
   alert(1+ typeof f) // 1function
}

Decode 03.07.2015 21:32

caetus, в вашем примере Function Declaration.

А в моем NFE, т.к. находится в позиции выражения (expression) — внутри if (...).

Rise, верно?

Safort 03.07.2015 21:39

Цитата:

Сообщение от Decode (Сообщение 377574)
caetus, в вашем примере Function Declaration.

А в моем NFE, т.к. находится в позиции выражения (expression) — внутри if (...).

Rise, верно?

Да.


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