[DeepDive] 04. へんすう式と文



変数#ヘンスウ#


変数を使用する理由


メモリ値に直接アクセスするとエラーが発生する可能性があるため、危険です.
直接アクセスしても、コードの実行に伴ってメモリ値が変化するため、コードが実行される前に、値を格納するメモリアドレスを知らないし、教えてくれません.
勘定科目科目:値を格納するために保持されるメモリ領域自体またはそのメモリ領域の名前を指定します.値の位置を示す象徴的な名前です.

識別

변수:ある値を識別する一意の名称.メモリ内の値の名前を指定できます.
  • 識別子は、値ではなくメモリアドレスを記憶している.
  • 識別子は記憶値のメモリアドレスとマッピング関係を確立し、このマッピング情報もメモリに記憶すべきである.
  • 식별자JavaScriptエンジン識別子の存在を通知する.
  • 識別子命名規則

  • 特殊文字の他、文字、数字、アンダーコード()、ドル記号($)を含むこともできる.
  • 上の文字で始まることができますが、数字で始まることはできません.
  • 予約語は識別子として使用できません.
  • JavaScript大文字と小文字の区別
  • javascriptは、変数または関数の名前にcamelCaseを使用し、コンストラクション関数およびクラス名にPascalCaseを使用します.
  • 変数の宣言

    선언:メモリ値のメモリ領域を保持し、メモリ値を準備するために、メモリ領域が保存されているアドレスに変数名を接続する변수 선언:JavaScriptコードを解釈し実行するJavaScriptエンジンが実行するコマンド.キーワードに遭遇すると、JavaScriptエンジンは、自分が実行する必要がある所定の動作を実行します.
    *varキーワードはブロック・レベルのスキャンではなく、関数レベルのスキャンをサポートするため、予期せぬグローバル変数が宣言され、問題が発生します.これらの問題を改善するために、ES 6はletとconstキーワードを導入した.したがってletやconstが導入した理由を知るためにはvarキーワードの欠点を知る必要があり,そのためにscopeなどの概念を知る必要がある.
  • varキーワードを使用した変数宣言は、宣言と初期化を同時に実行します.変数宣言後、空のメモリ領域に「暗顕未定義」という値を割り当てて初期化します.
    以前のアプリケーションで使用された値(ゴミ値)のリスクが解消されました.
  • がんばって変数参照がどこにもない理由

    console.log(score); // undefined
    var score; // 변수 선언
    上記のコードは、Referecneエラーが発生することなく、定義されていないものを出力します.
    実際には、変数宣言がソースコードのどこにあるかにかかわらず、変数を参照できます.
    勘定科目勘定科目JavaScriptコードはinterpreterによって行単位で実行されます.ただし、変数宣言は、まずソースコードの前のステップ(=実行時)で実行されるため、場所に関係なくソースコードを行単位で実行するのではありません.
    JAvascriptエンジンは、1行のソースコードを実行する前に、準備フェーズのソースコード評価を行い、コード実行準備を行います.
  • この評価の過程でjavascriptエンジンはまず、変数宣言を含むすべての宣言をソースコードから探し出す.
  • ソースコードの評価プロセスが終了した後、変数宣言を含むすべての宣言を除き、ソースコードの1行を順次実行する.
  • JavaScript固有の特性、例えば変数宣言はコードの中でリードしている.

    割当値

    키워드:値の再配分ができず、記憶値の変更ができない
    変数宣言は実行時より前に実行され、値の割り当てはソースコードの順序実行時の実行時に実行されます.
    ・」」」」」」」」」」」」」」」ʒ」」」」」」」\
  • 任意の識別子を参照しないメモリ領域は、予知不可能な時間にゴミ収集器によって解放される:管理言語
  • 05.式と文


    式#シキ#

    호이스팅:生成した結果を式評価상수:人が理解できる文字や約定記号を使って値を生成する記号
  • JavaScriptエンジンは、コード実行時の実行時に文字を評価し、値を生成します.
  • 재할당:見積り可能な文.式を計算する場合は、新しい値を作成するか、既存の値を参照します.
  • 文字、識別子、演算子、関数呼び出しなどを組み合わせてもよい.
  • 文字=式:文字もjavascriptエンジンで評価して値を生成するので式です.
  • 式と式が評価された値は等しい関係である.式の場所にあることができます.
  • 3 // 숫자 리터럴 3
    var score=100; // 숫자 리터럴 100
    var score = 50 + 50; // 리터럴 50과 연산자 +, 50+50도 평가되어 숫자 값 100을 생성하므로 표현식이다.
    
    score; // = 100 // 값을 생성하지는 않지만 값으로 평가되므로 표현식이다.
    // 리터럴 표현식
    3
    'Hello'
    
    // 식별자 표현식
    sum
    person.name
    arr[1]
    
    // 연산자 표현식
    10+20
    sum = 10
    sum !== 10
    
    // 함수/메서드 호출 표현식
    square()
    person.getName()

    ドア。

    :プログラムを構成する基本単位と最小実行単位.プログラムは質問文の集合からなる.리터럴:文法的に意味のある、文法的に再分割できないコードの基本要素
  • ゲートは複数のコインで構成されている.
  • var sum = 1 + 2; // 토큰: var, sum, =, 1, +, 2, ;
  • ドアを閉めるときはセミコロンをつける
  • 事実javaスクリプトエンジンにおけるセミコロン自動挿入機能はデフォルトで実行されるので省略できる.
  • 開発者の意図とは異なる場合もある.
  • 符号ブロックは自己終端性があり、セミコロンは不要.ex.if文、for文、関数など

    非式文vs式文


    式が文ではない文を区別する最も簡単な方法は、変数に割り当てることです.
    var x; // 변수 선언 문은 표현식이 아닌 문이다.
    
    x=100; // 할당문은 그 자체가 표현식이자 완전한 문이다.
    
    var foo = x = 100; // foo에 100이 할당되는 문이다.
    *クロム開発者ツールにおいて、非式の扉を軽く洗い流すと、出現する未定義のものは표현식 expressionこれは式の計算結果ではないので、他の値のように変数に割り当てることはできません.変数も参照できません.