Почему моя переменная показывает, что она устарела?

Мой редактор (VS Code) показывает, что имя моей переменной устарело. Имя переменной вычеркнуто со 2-й строки. Вы можете помочь?

let name = 'Mark';
name = 5;
console.info(name);

Это потому, что вы перезаписываете свое значение 'Mark' на 5, поэтому в первую очередь нет причин устанавливать его на 'Mark'.

Dai 20.12.2020 12:52

Для Dai, даже если я удалю строку (имя = 5), она все равно будет считаться устаревшей.

JITTU VARGHESE 20.12.2020 12:54

@Ivar Этот дубликат не относится к let name, только к var name.

Bergi 20.12.2020 13:18

Разве vscode не показывает объяснение устаревания?

Bergi 20.12.2020 13:20

Да, это происходит каждый раз, когда вы где-то называете свойство «имя» (глобально?). предупреждение об устаревании взято из типописи для lib.dom.d.ts. Я тоже смутился, когда впервые увидел.

Welcor 26.03.2023 17:33
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Раскрытие чувствительных данных
Раскрытие чувствительных данных
Все внешние компоненты, рассмотренные здесь до сих пор, взаимодействуют с клиентской стороной. Однако, если они подвергаются атаке, они не...
Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Руководство ChatGPT по продаже мини JS-файлов
Руководство ChatGPT по продаже мини JS-файлов
JS-файл - это файл, содержащий код JavaScript. JavaScript - это язык программирования, который в основном используется для добавления интерактивности...
34
5
89 960
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

В браузере переменная глобального имени имеет особое значение. Это вызвало много путаницы у людей на протяжении многих лет, когда они пытались создать свою собственную глобальную переменную с именем name, а затем обнаруживали, что она преобразована в строку.

Используемая вами программа проверки, по-видимому, не может в особом случае присвоить name, если она следует за объявлением let name.

Вы можете видеть, что сообщение исчезает, если вы поместите код внутрь функции.

Это ИИФЭ? И если да, то что делает восклицательный знак в начале. Это как бы отрицает это или что-то в этом роде?

theProCoder 01.10.2021 13:36

Является IIFE, и ! знак предназначен только для небольшой оптимизации. Это не имеет значения.

Ale DC 22.02.2022 16:54

Для уточнения ! не является оптимизацией в этом примере. Для IIFE вы можете превратить функцию в выражение, заключив ее в круглые скобки и вызвав ее, или, чтобы сэкономить несколько символов, поставив перед ней оператор и вызвав ее. На представленном скриншоте автор сделал и то, и другое, сделав одно или другое ненужным.

Matthew Dean 21.09.2022 17:51

В VS Code найдите имя переменной, где оно показывает устаревшее имя. Поместите курсор и щелкните его правой кнопкой мыши, затем выберите «Перейти к определению». Он откроет другой файл с именем lib.dom.d.ts.

Просто удалите строку «объявить константное имя: void;» Это удалит ваше имя переменной из списка устаревших.

Вы буквально изменяете глобальное пространство имен typescript. Каждый раз, когда вы обновляете машинописный текст или делаете что-то еще, это может измениться. Также от этого может зависеть некоторый машинописный код. Абсолютно не рекомендуется.

leo848 04.01.2022 21:25

Просто чтобы уточнить, всякий раз, когда что-то вычеркнуто, это предупреждение о том, что оно в основном использовалось много и может быть нарушено. Это просто предупреждение для переменных с базовыми именами. Вам не нужно беспокоиться об этом

Другие вопросы по теме