このコード スニペットにより、コンソールに「Uncaught ReferenceError: x is not Defined」というエラーが表示されるのはなぜですか
リーリーそして、このレコードは「未定義」ですか?
リーリー変數(shù)宣言と変數(shù)スコープを理解しようとしています。コード全體が同じページ內(nèi)にあるため、ブーストが発生することが予想されます。しかし、console.log() が別の script タグで區(qū)切られているため、コンソールに「unknown」が記録されるだけでなく、エラーが発生します。
var
はプロモートされます。これは、たとえ宣言行がスコープの最後にあっても、それが定義されているスコープの先頭からアクセスできることを意味します。宣言する前に var にアクセスすると、宣言を?qū)g行し、場合によっては変數(shù)を特定の値に初期化する必要があるため、変數(shù)は 未定義
になります。
これが 2 番目の例の仕組みです。
ブーストについてはこちらをご覧ください:
https://developer.mozilla.org/en-US/docs/glossary/lifting
しかし、最初の例 2