[JavaScript]変数


変数宣言キーワード


キーワードスキャン再宣言varfunction-level scope可能letblock-level scope不可能constblock-level scope不可能
変数宣言キーワードはvar,let,constの3種類がある.変数宣言によって取得されたメモリ領域はundefinedという値のデフォルト割当てによって初期化されます.したがって,値を割り当てずに変数を参照すれば,ゴミ値の危険を回避できる.

へんすうかそく


変数、識別子などのすべての宣言は実行時より前に実行され、値の割り当ては実行時に実行されます.したがって,これは変数宣言の動作特徴がコードの前に引き上げられるようにすることを意味する.
console.log(score); // undefined
var score;
c++またはjava、Pythonの場合、エラーのコードが表示されます.変数を宣言する前に変数を使用してもJavaScriptにエラーは発生しません.ただしvarでのみエラーが発生し、letとconstではエラーが発生します.

値の再割り当て



変数に値を再割り当てすると、古い値80が格納されているメモリ領域は消去され、再割り当て値90は再保存されません.値を格納する新しいメモリ領域があることを確認します.古い値undefinedと80は不要な値で、가비지 컬렉터によってメモリから自動的に無効になります.ただし、メモリからいつ解除されるかは予測できません.

ごみ収集器


アプリケーションが割り当てたメモリ領域を定期的にチェックすることで、使用されなくなったメモリを解放し、メモリの漏洩を防止します.

管理言語VS非管理言語


言語の管理

  • 자바스크립트などのゴミ収集器を内蔵した言語.
  • メモリを言語的に管理します.
  • これは、開発者がメモリを明示的に割り当てて解放できないことを意味します.
  • 利点:開発者の能力に依存する部分が相対的に小さいため、生産性をある程度向上させることができる.
  • 欠点:性能上の損失は避けられない.
  • 非仕様言語

  • c언어非言語.
  • 開発者は、malloc()free()などの低レベルのメモリ制御機能を提供し、メモリを明示的に割り当て、解放します.
  • 利点:開発者はメモリを直接制御し、開発者の能力に応じて最適なパフォーマンスを提供することができます.
  • 欠点:逆に致命的なエラーが発生する可能性があります.
  • JavaScriptを学習する過程で、新しく知った内容とJavaScriptの独特な特徴を中心に、内容を整理しました.

    リファレンス


    モダンJavaScript Deep Dive,李雄模(2020)