javascript エラー「Uncaught SyntaxError: Identifier ‘top’ has already been declared」の原因

javascript エラー「Uncaught SyntaxError: Identifier ‘top’ has already been declared」の原因

javascriptで、エラー「Uncaught SyntaxError: Identifier ‘top’ has already been declared」の原因を記述してます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 103.0.5060.114

エラー内容

変数名に「top」を使用した場合にchromeで発生。

const top = 'hoge';

console.log(top);

chrome 103.0.5060.114

Uncaught SyntaxError: Identifier 'top' has already been declared

firefox 102

Uncaught SyntaxError: redeclaration of non-configurable global property top

ie11は正常に動作。

原因

「top」は省略できる「window」オブジェクトで定義済みなため

console.log(window.top);
console.log(top); // ← window.topと同じ

実行結果

同様の理由で、「document」もエラーとなります。

const document = 'hoge';

console.log(document);
// Uncaught SyntaxError: Identifier 'document' has already been declared