#javascript
Вопрос:
Я новичок в изучении Javascript, и, следуя учебнику, я обнаружил, что console.log(имя); получил (имя) таким образом, утверждая, что он «Устарел».
Если есть объяснение того, что это значит или что я должен сделать, чтобы удалить этот удар, я был бы очень благодарен.
Комментарии:
1. В среде браузера глобальная переменная
name
ссылается наwindow.name
. Вряд ли вы этого хотели. Вместо этого определите переменную в локальной области, прежде чем ссылаться на нее. В глобальном масштабе избегайтеname
.2. @тринкот Есть
var name = '';
доconsole.log()
этого .3. «Устаревший» означает, что он все еще работает, но больше не поддерживается и может сломаться в будущих версиях.
Ответ №1:
Поскольку вы использовали var name = ...
, TypeScript думает , что вы имеете в виду window.name
, что TypeScript считает устаревшим. Вы можете исправить эту ошибку,:
- Используйте другой идентификатор переменной, например
anotherName
—
var anotherName = 'Bob'
console.log(anotherName)
- Переместите код внутри функции. —
(() => {
var name = 'bob'
console.log(name)
})()
Ответ №2:
Я думаю, что это связано с тем фактом , что «свободная» переменная в браузере, объявленная var
вне функции, просто будет указывать на:
window.name
И window.name
имеет особое значение, и действительно устарел.
Это причуда языка. Если вы не собирались создавать переменную в глобальной области, вам, возможно, было бы лучше просто объявить ее в функции.
У этого не будет такой же проблемы:
function main() {
const name = 'Foo';
}
main();
Как правило, рекомендуется избегать создания каких-либо глобальных символов, если вы явно не намерены этого делать.