Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.07.2015, 23:38
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

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


Правильно ли я понимаю, что на функцию никто не ссылается и она удаляется из памяти? В результате f становится undefined.
Ответить с цитированием
  #2 (permalink)  
Старый 03.07.2015, 07:42
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

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

Цитата:
В результате f становится undefined.
Нет. typeof f изначально было равно undefined, потому что никакой переменной с названием f не создавалось.
Ответить с цитированием
  #3 (permalink)  
Старый 03.07.2015, 17:35
Профессор
Отправить личное сообщение для caetus Посмотреть профиль Найти все сообщения от caetus
 
Регистрация: 23.09.2014
Сообщений: 197

Сообщение от Rise Посмотреть сообщение
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
}
Ответить с цитированием
  #4 (permalink)  
Старый 03.07.2015, 21:32
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

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

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

Rise, верно?
Ответить с цитированием
  #5 (permalink)  
Старый 03.07.2015, 21:39
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Сообщение от Decode Посмотреть сообщение
caetus, в вашем примере Function Declaration.

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

Rise, верно?
Да.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос про text и enter Lansaid Events/DOM/Window 8 26.02.2013 19:54
еще один вопрос про кнопки и события f0rzik Общие вопросы Javascript 15 19.01.2013 23:19
Вопрос про change vitaly63 Общие вопросы Javascript 1 24.12.2012 10:50
Глупый вопрос про if then. Irish.Tippler Общие вопросы Javascript 9 26.07.2012 12:32
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06