[JavaScript] Анонимные функции не анонимные

  1. 5 мес. назад
    11.06.2024 20:18:19 отредактировано твоя мамка

    берем анонимную функцию:

    () => {}
    

    проверяем ее имя:

    (() => {}).name === ''
    

    пока все в порядке.

    Присваиваем ее в переменную:

    const myVar = () => {}
    

    проверяем ее имя:

    myVar.name === 'myVar'
    

    У анонимной функции появилось имя!!! Ахахахахахахах пидоры сосите залупу!!!!

    Ответы: (3)
  2. Я не специалист в js. Вот что нашёл в интернете:

    Anonymous function expressions created using the keyword function or arrow functions would have "" (an empty string) as their name.
    <...>
    However, such cases are rare — usually, in order to refer to the expression elsewhere, the function expression is attached to an identifier when it's created (such as in a variable declaration). In such cases, the name can be inferred, as the following few subsections demonstrate.

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name

    Ответы: (6)
  3. твоя мамка берем анонимную функцию:

    () => {}
    

    проверяем ее имя:

    (() => {}).name === ''
    

    пока все в порядке.

    Присваиваем ее в переменную:

    const myVar = () => {}
    

    проверяем ее имя:

    myVar.name === 'myVar'
    

    У анонимной функции появилось имя!!! Ахахахахахахах пидоры сосите залупу!!!!

    Ватник после двух бутылок стекломоя решил открыть для себя JS?

  4. :)

  5. Выдержка из книги JavaScript для свинособак и зеков

    В JavaScript функции могут быть именованными и анонимными. Именованная функция имеет заданное имя, тогда как анонимная функция не имеет имени. Однако, когда анонимная функция присваивается переменной, она автоматически получает имя этой переменной. Давайте рассмотрим это подробнее.

    ### Анонимные функции

    Анонимная функция — это функция без имени:

    ```javascript
    const anonFunc = function() {
    // тело функции
    };

    console.log(anonFunc.name); // ""
    ```

    Как вы видите, у этой функции нет имени.

    ### Стрелочные функции

    Стрелочные функции также могут быть анонимными:

    ```javascript
    const arrowFunc = () => {
    // тело функции
    };

    console.log(arrowFunc.name); // "arrowFunc"
    ```

    ### Присваивание имени анонимной функции

    Когда вы присваиваете анонимную функцию переменной, JavaScript автоматически присваивает имя функции, основанное на имени переменной. Это поведение определено в спецификации ECMAScript.

    #### Пример:

    ```javascript
    const myVar = () => {
    // тело функции
    };

    console.log(myVar.name); // "myVar"
    ```

    В этом примере анонимная стрелочная функция присваивается переменной `myVar`. JavaScript автоматически присваивает этой функции имя `myVar`.

    ### Подробное объяснение

    Когда функция присваивается переменной, JavaScript использует механизм, называемый "имя функции наследования", чтобы установить свойство `name` функции. Это позволяет разработчикам легко идентифицировать функции по их именам, что особенно полезно при отладке.

    #### Пример анонимной функции:

    ```javascript
    const anon = function() {};
    console.log(anon.name); // "anon"
    ```

    #### Пример анонимной стрелочной функции:

    ```javascript
    const arrow = () => {};
    console.log(arrow.name); // "arrow"
    ```

    ### Спецификация

    Согласно спецификации ECMAScript, когда функция присваивается переменной или свойству объекта, интерпретатор JavaScript пытается установить имя функции на основе контекста, в котором она была объявлена.

    - Если функция присваивается переменной, её имя будет равно имени переменной.
    - Если функция присваивается свойству объекта, её имя будет равно имени свойства.

    #### Пример с объектом:

    ```javascript
    const obj = {
    method: function() {}
    };

    console.log(obj.method.name); // "method"
    ```

    ### Заключение

    JavaScript автоматически присваивает имя анонимной функции, когда она присваивается переменной или свойству объекта. Это имя используется для улучшения читаемости и отладки кода. Таким образом, при присваивании анонимной функции переменной, имя функции становится равно имени переменной.

  6. 12.06.2024 17:15:48 отредактировано твоя мамка

    Kevin Я не специалист в js. Вот что нашёл в интернете:

    Anonymous function expressions created using the keyword function or arrow functions would have "" (an empty string) as their name.
    <...>
    However, such cases are rare — usually, in order to refer to the expression elsewhere, the function expression is attached to an identifier when it's created (such as in a variable declaration). In such cases, the name can be inferred, as the following few subsections demonstrate.

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name

    Все верно, молодец, чел! Ты тут единственный, походу, шаришь в программировании, не считая меня.
    Сда ничего не понял как обычно. Навальный просто за тобой повторил. У Теслы еще есть шанс стать прогером.

    Ответы: (7)
  7. (6) Да причём тут это.. Я даже подумал, что ты юморишь..

  8. Типа, зная фичи js, решил так преподнести.

  9. js мой любимый язык. Могу говорить про него часами.

  10. Мне тоже очень нравится js.

    Ответы: (12)
  11. JS будет вашим собутыльником.

    Выпиваем за здоровье wallaby.js и TDD с cypress

  12. Kevin Мне тоже очень нравится js.

    Я больше, наверно, си шарп люблю. А если из таких, то TypeScript
    Хотя js я очень люблю

    Ответы: (18)
  13. Мне статическая типизация нравится.

  14. хорошая ветка. если вдруг слинял не туда, тот тут сразу.. динамическая типизация версус статическая и суровая морда. это я просто хочу песенку залить.

  15. А воообще мне статическая нравится. Круче же, чем динамическая

  16. Поэтому typescript нравится

  17. Хотя динамический js тоже нравится

  18. 13.06.2024 16:27:02 отредактировано твоя мамка

    Kevin А если из таких, то TypeScript

    Это и есть JS. Когда говорится JS, то имеется в виду так же и TS. Сейчас делаю новый проект, там бекенд написан на JS, а фронтенд на TS. Вообще пофигу. Я их не разделяю. Для меня это одно и то же. Просто не пользуюсь динамической типизацией, не важно что она есть в JS. Программировать можно сразу правильно. Если кто-то типизирует динамически, то во время код ревью заставляю переделывать. Это считается антипаттерном по современным нормам. И всякие хаки типа применения битовых операций для преобразования типа - тоже антипаттерн. Код должен быть чистым и легко читаемым.

    Ответы: (19) (20) (21)
  19. твоя мамка Если кто-то типизирует динамически, то во время код ревью заставляю переделывать. Это считается антипаттерном по современным нормам

    Интересно

  20. твоя мамка И всякие хаки типа применения битовых операций

    Ну да, ну да.

  21. твоя мамка то и есть JS. Когда говорится JS, то имеется в виду так же и TS

    Ну как бы я курсе, что ts это js

  22. Просто я люблю си шарп.

    Ответы: (24)
  23. Это мой любимый язык, наверно.

  24. 13.06.2024 16:56:44 отредактировано твоя мамка

    Kevin Просто я люблю си шарп.

    Си шарп норм. Я на нем делал приложение для своей Нокии Люмии. Жаль Вин Фон сдох. Хороший был. Трехцветный дизайн, иконки с прямыми углами, стильно. Ни то что на всяких андройдах и аплах, все закругленное, полупрозрачное и цветастое.

    Кстати, на айфоне я себе тоже поменял все иконки на главном экране. Сделал все одинакового цвета, монохромные.

  25. Ой. Как я свою люмию жёлтую любил с вин фоном

  26. Такая стильная и изящная была

  27. Жалко многих. И Symbian, и Windows mobile, и Windows Phone

  28. Люмия был интересный телефон

  29. 14.06.2024 00:50:46 отредактировано Навальный это Россия

    Не отвлекайтесь от бутылки. Еще один ерш из пива и стекломоя с демидролом и стрелочные функции начнут разговаривать с вами.

    Хотя после такого ерша Кевин превратится в стеклотару.

  30. 2 мес. назад

    Вот что что, а JS мне не нравится. А вот Java понравилась больше, чем php даже. И Go тоже, но в Java комфортно и спокойно потому что вероятность столкнуться с проблемой, которая еще нигде не освещалсь низка.

    Единственное что нравится в js - это реактивные фреймворки позволяющие легко манипулировать деревом DOM и легко управлять содержимом страницы и ее элементов.

    Ответы: (31)
  31. Витязь JS мне не нравится

    Чем?

или зарегистрируйтесь чтобы ответить!