現代JavaScript Deep Dive定理1変数


コンピュータメモリ


人間は計算と記憶を頭で処理するが、コンピュータはcpuで演算し、メモリで데이터を記憶する.메모리は、데이터のメモリセルを格納することができる集合体である.メモリユニットには1バイトのサイズがあります.コンピュータは、メモリセルのサイズ単位でデータ저장または읽어を入力する.
コンピュータはすべてのデータに対してバイナリ処理を行い、10+20を実行すると判断した場合、数字10および20は메모리 공간に記入しなければならない.その後、cpuは、それを計算し、結果値30を任意のメモリ領域に格納する.
メモリがホテルなら...

演算結果はメモリに格納されますが、この数値は繰り返し使用できません.再使用するには、結果値を格納するメモリ領域に直接アクセスする必要があります.しかし、アドレスを通じて直接アクセスするのは危険です.
意図した値とは異なる値を変更した場合、またはシステムが停止し、メモリを直接制御できる場合、メモリ値を格納するメモリアドレスはコードの実行時の状況に応じてランダムに決定されるため、開発者は使用しにくく、リスクが大きい.それに君にも言わない.
データのプライバシーを保護...

したがって、プログラミング言語は、記憶したい値저장および値읽어をメモリ内で再使用するための변수と呼ばれるメカニズムを提供する.

へんすう

변수は、1つの値を格納するために保持されるメモリ領域自体またはメモリ領域を識別するために取得される名前である.
値段の象徴的な名前です.変数は、値を格納するメモリ領域のアドレスに変換されて実行されます.したがって、開発者は、변수を介して値に安全にアクセスすることができる.변수は1つの値を格納する手段であるが、オブジェクトや配列などのデータ構造を用いて、複数の値を組み合わせて1つの値として使用することができる.

最初に実行した10+20を변수に入れて実行します.

保存されている30という値を変数resultで再使用できるようになりました!

識別


変数名(識別子)は、
  • メモリ領域に格納された値を識別するために使用される.
  • 変数に格納値は、変数値
  • である.
  • 変数に格納値は、割り当て
  • である.
  • 変数の値を取得するには、
  • を参照してください.
  • 識別子は、値ではなく메모리 주소を記憶する.
  • 識別子は必ずしも変数名に限らず、関数やクラスなどの名前は識別子です.これらの名前は、命名規則に従い、javaスクリプトエンジンに선언によって通知される必要があります.

    変数の宣言


    変数は생성です.変数を使用するには、宣言する必要があります.宣言はvar、let、constキーワードを使用します.△この3つのキーワードは今度はもっと深く見ることができます.
    変数宣言後、値を指定しない場合は、値が空とみなされる可能性がありますが、javascriptではundefinedという値암묵적 할당が使用されます.
    varキーワードとして宣言された変数は、宣言フェーズと初期化フェーズを同時に行います.すなわち
    var score;
    このように宣言すると、scoreを登録した後、初期化ステップでundefiendとして指定して初期化します.
    変数名を含む識別子は실행 컨텍스트に登録されます.JavaScriptエンジンがソースコードの評価と実行に必要な環境を提供し、コードの実行結果を実際に管理する分野です.
    初期化を行わない場合、保存されたメモリ領域は、以前に他のアプリケーションで使用された値を保持する可能性があります.これらの値をゴミ値と呼び、varキーワードはデフォルトの初期化によってこのような状況を防止します.

    変数宣言の実行点とエスケープ


    c言語では、変数宣言を参照コードの下に置くとエラーが発生します.

    コードは上から順に実行されるので、参照エラーが発生するのは当然ですが、この場合JavaScriptはundefinedを出力します.

    変数宣言は、実行時よりも前のフェーズで実行されるためです.
    JAvaスクリプトは、シーケンス実行前にソースコードの評価を経て、このプロセスで最初にすべての宣言を検索して実行します.すなわち、変数宣言がどこにあるかにかかわらず、他のコードよりも先に実行されます.
    このように,変数宣言がコードの先頭に引き上げられるように,動作のJavaScript固有の特徴を変数エスケープと呼ぶ.var、let、const、function、classキーを使用して宣言されたすべての識別子がハイライトされます.

    割当値


    変数に値を割り当てる場合は、値付け演算子(=)を使用します.この演算子は右の値を左の変数に割り当てます.
    var score= 80;
    これにより、선언および할당を1つのゲートに短縮することができる.このショートカットを使用してもjavascriptは선언할당に分けて実行されます.선언は、実行時(ソースコードシーケンス実行時)より先に実行される.할당は、実行時に実行されます.

    値の再割り当て


    割り当てられた値の変数に新しい値を再割り当てすることを再割り当てと呼びます.値を再割り当てできず、変数に格納されている値を変更できない場合は、상수と呼ばれます.constキーワードとして宣言された変数は再割り当てが禁止されます.したがって定数を表すことができる.
    80がscoreという変数に割り当てられ、90に再割り当てされた場合、以前に割り当てられた未定義および80は、値がない状態になります.これはundefinedおよび80が不要であることを意味し、これらの不要な値は가비지 콜렉터によって自動的に解除される.가비지 콜렉터とは、定期的にメモリ容量をチェックして、使用されなくなったメモリを分解する機能です.C言語では、開発者はメモリ管理によってパフォーマンスを直接向上させることができますが、致命的なエラーが発生する可能性があります.JAvascriptは非規範言語であり、開発者はメモリクラッシュがいつ発生するか分からないが、依存する機能が少ないため、一定の生産性を確保することができる.

    識別子命名規則

  • 特殊文字に加えて、文字、数字、ベースコード、ドル記号を含むこともできる.
  • の数字で開始しません.
  • 2예약어ではありません.(予約語とはプログラミング言語で使用または使用予定の語を指す.ex)wait、break、caseなど...)
  • は、その意味を理解するように命名された.
  • 会議は毒性のために規定された命名規則であり、1つ以上の英語単語からなる識別子である.
    //카멜케이스
    var camelCase;
    //스네이크 케이스
    var snake_case;
    //파스칼 케이스
    var PascalCase;
    //헝가리안 케이스(타입+식별자)
    var strFirstName;
    javascriptでは、変数または関数の名前は通常camel caseを使用し、クラスの名前はpascal caseを使用します.