powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JS if() - непонятки
25 сообщений из 62, страница 1 из 3
JS if() - непонятки
    #39307946
Фотография VladislavVV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем
почему
Код: java
1.
2.
3.
if (function f(){}) {
  alert(typeof f);
}



undefined а не object

подскажите, не вижу очевидного

спс
Life is a bitch and then you die
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39307999
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
if (f=function(){}) {
  alert(typeof f);
}


Существуют функции-объявления и функции-выражения.
Внутри условия if - выражение, зачем там объявлять функции?
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308015
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladislavVVundefined а не object
у меня честно возвращает "function"
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308025
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилVladislavVVundefined а не object
у меня честно возвращает "function"
Это если f ранее определена.

так да, возвратит 'function'
Код: javascript
1.
2.
3.
4.
alert(typeof (function f(){}));
/* или так */
function f(){};
alert(typeof f);


а если f ранее не определена, то через выражение вернёт 'undefined'
Код: javascript
1.
2.
3.
if (function f(){}) {
  alert(typeof f);
}


Думаю это потому, что во время вычисления выражения среда исполнения (браузер) использует неявные преобразования,
то-есть результат выражения без присваивания не сохранится.
Нужно обязательно присваивать результат выражения или передавать в функцию как параметр.
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308046
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бухалтер фантоцци,

неа, честно undefinned, затем function
Код: sql
1.
2.
3.
4.
alert(typeof f);
if (f=function(){}) {
  alert(typeof f);
}
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308048
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

так это мой правильный код, у ТС другой код
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308104
Фотография VladislavVV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, это не рабочий код, это тест на js ninja на itquiz
и он именно такой, какой я написал, без каких либо изменений
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308105
Фотография VladislavVV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot бухалтер фантоцци]Изопропилпропущено...



[/src]
Думаю это потому, что во время вычисления выражения среда исполнения (браузер) использует неявные преобразования,
то-есть результат выражения без присваивания не сохранится.
Нужно обязательно присваивать результат выражения или передавать в функцию как параметр.

+1

Код: java
1.
2.
3.
4.
5.
if (iiii=function f(){}) {
  alert(typeof iiii);
}

alert="function"



спс!
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308112
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladislavVVНарод, это не рабочий код, это тест на js ninja на itquiz
и он именно такой, какой я написал, без каких либо изменений
так это был тест для нас?
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308119
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бухалтер фантоцци,

Что взять с больных людей?.
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308127
Фотография VladislavVV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это был тест для меня , не знал ответа и аргументов для ответа
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308139
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оккам говорит, что автор теста - болен на голову
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308148
Фотография VladislavVV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилОккам говорит, что автор теста - болен на голову

поддерживаю, однако, при собеседовании - таких вопросов - большинство
сорри за offtopic
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308760
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилОккам говорит, что автор теста - болен на голову
Не читайте книжки из серии "You Don't Know JS". Плохо спать будете :)
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308773
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladislavVVоднако, при собеседовании - таких вопросов - большинство
Манагеры атакуют...
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308776
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИзопропилОккам говорит, что автор теста - болен на голову
Не читайте книжки из серии "You Don't Know JS". Плохо спать будете :)
Почитал. В сон потянуло.
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308786
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилskyANAпропущено...

Не читайте книжки из серии "You Don't Know JS". Плохо спать будете :)
Почитал. В сон потянуло.
От чего конкретно, если не секрет? :)
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308843
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAОт чего конкретно, если не секрет? :)
об этой книге речь ? - https://github.com/getify/You-Dont-Know-JS
занудная и примитивная
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308855
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бухалтер фантоцциДумаю это потому, что во время вычисления выражения среда исполнения (браузер) использует неявные преобразования,
то-есть результат выражения без присваивания не сохранится.
Нужно обязательно присваивать результат выражения или передавать в функцию как параметр.
полагаю, что корректный ответ здесь - https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/function

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
function expression

Конструкция function используется для определения функции внутри выражения.
Синтаксис

function [name]([param1[, param2[, ..., paramN]]]) {
   statements
}

name
    Имя функции. Может быть опущено, в случаях, когда функция является анонимной. [color=yellow]Имя функции является локальным[/color] для тела функции.
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308857
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилskyANAОт чего конкретно, если не секрет? :)
об этой книге речь ? - https://github.com/getify/You-Dont-Know-JS
занудная и примитивная
Нет, речь не о конкретной книге, а о серии.
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308858
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИзопропилпропущено...

об этой книге речь ? - https://github.com/getify/You-Dont-Know-JS
занудная и примитивная
Нет, речь не о конкретной книге, а о серии.
А, по ссылке и есть серия из 6 книг (линк долго открывался). Так что конкретно Вас усыпило?
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308954
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилбухалтер фантоцциДумаю это потому, что во время вычисления выражения среда исполнения (браузер) использует неявные преобразования,
то-есть результат выражения без присваивания не сохранится.
Нужно обязательно присваивать результат выражения или передавать в функцию как параметр.
полагаю, что корректный ответ здесь - https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/function

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
function expression

Конструкция function используется для определения функции внутри выражения.
Синтаксис

function [name]([param1[, param2[, ..., paramN]]]) {
   statements
}

name
    Имя функции. Может быть опущено, в случаях, когда функция является анонимной. [color=yellow]Имя функции является локальным[/color] для тела функции.



К вопросу, поднятому ТС (а именно - почему undefined ) это не имеет никакого отношения. Я достаточно подробно расписал ответ.
И потом, я сразу 19656381 дал ответ насчёт функций-выражений (где можно опустить название) и функций-объявлений.

Но в функциях - выражениях может быть указано имя специально, если впоследствии нужно будет узнать имя функции через obj.name
Можно и так написать, это
Код: javascript
1.
2.
3.
if (f=function myFunc1(){}) {
  alert(typeof (f) + '\n' + f.name);
}
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308972
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бухалтер фантоцциДумаю это потому, что во время вычисления выражения среда исполнения (браузер) использует неявные преобразования,
то-есть результат выражения без присваивания не сохранится.
причём здесь преобразование?
Конструкция function использована для определения функция внутри выражения if( ...)
... - выражение, не правда ли?
далее имеем, что имя функции локально для тела - соответственно в ветках условного оператора имя уже не видно)
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308974
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТак что конкретно Вас усыпило?
нового ничего не узнал
...
Рейтинг: 0 / 0
JS if() - непонятки
    #39308984
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилбухалтер фантоцциДумаю это потому, что во время вычисления выражения среда исполнения (браузер) использует неявные преобразования,
то-есть результат выражения без присваивания не сохранится.
причём здесь преобразование?
Конструкция function использована для определения функция внутри выражения if( ...)
... - выражение, не правда ли?
далее имеем, что имя функции локально для тела - соответственно в ветках условного оператора имя уже не видно)

1. преобразование при том, что выполнилось условие (результат выражения был приведён неявно к true ),
2. function (или [new] Function) возвращает ссылку на объект-функцию, который без присваивания не сохранится.
3. Поэтомуalert(typeof f); вернёт undefined

19656119
Код: javascript
1.
2.
3.
if (function f(){}) {
  alert(typeof f);
}



Думаю, всё давно понятно, как ТС, так и остальным. Можно конечно докопаться до отдельных слов и даже букв, но зачем?
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 1 из 3
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JS if() - непонятки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]