モダンJavaScript Deep Dive-07.演算子&その他のレッスンのクリア


演算子

  • 演算子は、1つ以上の式に対して算術、付与、比較、論理、タイプ、指数演算などの操作を行い、1つの値
  • を生成する.
  • 演算の対象を被演算子
  • と呼ぶ.
  • 個の演算子と演算子とを組み合わせた演算子式も値で評価できる式
  • である.
    // 산술 연산자
    5 * 4 // 20
    
    // 문자열 연결 연산자
    'My name is'+'Lee' // My name is Lee
    
    // 할당 연산자
    color = 'red' // 'red'
    
    // 비교 연산자 
    3 > 5 // -> false
    
    // 논리 연산자
    true && false // false
    
    // 타입 연산자 
    typeof 'Hi' // string

    演算子

  • 式をより複雑にするには、演算子
  • を使用します.
  • letと比較して、constは
  • のため、変数の値を直接変更することはめったにありません.

    7.1-演算子

  • 算術演算子は被演算子を数学的に計算し、新しい数値
  • を生成する.
  • の演算ができない場合は、NAN
  • を返す.

    7.1.1-算術演算子

  • この算術演算子は2つの被演算子を算術演算し、数値
  • を生成する.
    この演算子の説明+減算*乗算/除算%左側の被演算子を右側の被演算子に分割し、残りの

    7.1.2-単項演算子

  • 単項算術演算子は1つの被演算子を算術演算し、数値
  • を生成する.
  • は一般的な算術演算子とは異なり、増減演算子は被演算子の値を変更する賦値効果
  • を有する.
  • すなわち、増減演算を行うと、被演算子の値がデフォルトで割り当てられる.
    単項演算子説明++増加--減少+は被演算子に何の効果もありません.負数も正数に反転しない.演算子のタイプを数値に変換して返します.負数を負数に変換し、負数を正の値に変換します.
    // + 단항 산술 연산자는 피연산자의 타입을 숫자 타입으로 변경하여 반환한다.
    console.log(+"10"); // 10
    console.log(+false); // 0
    console.log(+true); // 1
    
    // - 단항 산술 연산자는 피연산자의 타입을 숫자로 변환하여 반환한다.
    // 피연산자가 음수라면 양수로, 양수라면 음수로 반전한 값을 반환한다.
    console.log(-"10"); // -10
    console.log(-true); // -1
    console.log(-false); // 0
    

    増減演算子

    var x = 1;
    
    // ++연산자 (증가 연산자) 는 피연산자의 값을 변경하는 암묵적 할당이 이뤄진다.
    x++; // x = x+1;
    console.log(x); // 2
    
    // --연산자 (감소 연산자) 는 피연산자의 값을 변경하는 암묵적 할당이 이뤄진다.
    x--; // x = x-1;
    console.log(x); // 1
    
  • 増減演算子位置に意味がある
  • 被演算子の前に位置する電位増減演算子は、被演算子の値を増減してから、他の演算を実行する
    ->増加/減少線後配分
  • の被演算子の後ろにある接尾辞増減演算子は、まず他の演算を実行し、その後、被演算子の値を増加/減少させる
    ->アサイメント後の増加/減少
  • let number = 10;
    
    console.log(`result: ${number++}`); //'result: 10'
    console.log(`result: ${++number}`); // 'result: 12'
    console.log(`result: ${--number}`); // 'result: 11'
    console.log(`result: ${number--}`); // 'result: 11'

    +/-単項演算子


    +単項演算子


    非数値タイプの被演算子の場合、被演算子は数値タイプに変換され、に戻る.
    数値型に変換する値を生成するとが返される.

    -単項演算子

  • 被演算子の逆符号化値
  • を返す.
  • 演算子を数値型に変換し、値を生成して
  • を返す.
    const number = -5;
    
    console.log(-(number)); // 5
    console.log(-(-number)); // -5
    
    const string = '5';
    
    // typeof 연산자는 연산하려는 값의 타입을 반환합니다.
    console.log(typeof string); // 'string'
    console.log(typeof -(-string)); // 'number'
    console.log(typeof +string); // 'number'
  • *は算術演算子なので、文字と数字を掛け合わせるとNaNが出てきます.
    console.log(number * 'hello'); // NaN

    7.2-割付演算子

  • 右項の演算対象者の推定結果を左項の変数
  • に割り当てる.
  • 項の変数に値を付与、変数値が変化する負の効果
  • を有する.
  • 付与文は、値式の文として割り当てられた値として評価される
    ->したがって、割り当て文を他の変数
  • に割り当てることもできます.
    let number = 1;
    
    number += 1;
    console.log(number); // 2
    
    number -= 1;
    console.log(number); // 1
    
    number *= 10;
    console.log(number); // 100

    割付演算子

  • 演算子
  • 7.3-比較演算子/一致演算子

  • の左と右の演算子を比較し、結果をブール値
  • に戻します.

    7.3.1-ピア/照合比較演算子

  • 左と右の演算子が同じ値として評価されたかどうかは、ブール値
  • を返します.

    等比演算子

  • の左項と右項の被演算子を比較するときは、サイレントタイプで一致タイプを変換し、同じ値
  • であるかどうかを比較する.

    比較演算子の一致

  • ピア比較演算子は予測が困難な結果を生じ、一致比較演算子
  • を使用することを推奨する.
  • は比較演算子と一致し、左項と右項の被演算子はタイプが同じで、値が同じ場合trueを返し、
  • マッチング比較演算子では、NAN
  • に注意する必要がある.
  • NaNは、自分と一致しない唯一の値
  • です.
    したがって、数値がNaNであるかどうかを調べるには、isNaN関数を使用します.
    isNaN(NaN); // true

    浮動対等比較演算子(!=)/不一致比較演算子(!=)

  • 対等比較演算子と一致比較演算子の逆概念
  • console.log(0 !== false); // true (타입이 다르다)
    console.log(1 != true); // false (타입을 일치시킨 후 값만을 비교한다)

    比較演算子/一致演算子

  • 配列は参照データであるため、配列と配列を比較する、配列が同じ要素を有していても異なるデータ
  • である.
    2つの配列はそれぞれ異なるメモリを変数名として参照するため、2つの配列を比較すると、2つの変数名は異なるアドレス値を有するためfalse;である.
  • nullと未定義の比較演算子の比較->true
    一致演算子と比較して、->false(他のタイプのため)
  • trutty,falsy->真偽値
  • JavaScriptでは、0は特定の条件で偽であっても真であってもよいため、0を誇張値として定義します.
  • 0,null,未定義flasey値
  • ! タイプを1回変換→trueをfalse、falseをtrue、
  • !!タイプ変換を2回行う->falseをfalse
  • に再変換する
  • 空白文字列(")は->false
  • != は==の反対==はい!==の反対概念
  • const array1 = [1,2,3];
    const array2 = [1,2,3];
    
    console.log(array1==array2); // false
    console.log(array1===array2); // false

    7.4-3項条件演算子

  • 条件式の評価結果に基づいて、返される値
  • を決定する.
  • 第1の被演算子がtrueである場合、第2の被演算子が返され、第1の被演算子がfalseである場合、第3の被演算子が返される.
  • は、2番目または3番目の演算子として評価する式
  • である.
  • 最初の被演算子は条件式であり、ブール型値として評価される式
  • である.
  • 条件式の評価結果は、ブール値でない場合はブール値に変換され、デフォルトタイプ
  • となる.
    let 변수 = 조건식 ?1 :2; // 조건식 true -> 값1 , false -> 값2

    三項条件演算子

  • 条件演算子式は、値式文
  • である.
  • 値で計算できる式で、変数
  • を代入できます.
  • 「ドア」ですが、式は
  • です.
  • 条件文など他の「文」は変数を代入できませんが、3つの条件演算子は変数(式のため)
  • を代入できます.

    7.5-論理演算子

  • 論理演算子右項及び左項の被演算子に対する論理演算
  • 否定論理演算子については、右項の被演算子を論理演算
  • する.
    const a = 10 < 5;
    const b = 10 >= 20;
    
    console.log(a && b); // false
    console.log(!a && b); // false
    console.log(a || !b); //true 
  • 否定論理演算子(!)不合理な値はいつでも返されます
  • 被演算子は必ずしもブール値ではなく、被演算子がブール値でない場合、デフォルトタイプは
  • に変換されます.
    !0; // true
    !'hello'; // false

    迅速な評価

  • 論理和(|)または論理乗(&&)演算子式の計算結果は、ブール値ではない場合があります.
  • 論理和(|)または論理乗(&&)演算子式は、常に2つの被演算子のいずれかによって
  • を計算する.
  • 9.4節「クイック評価」詳細
  • // 단축 평가
    'cat' && 'dog' // dog

    迅速な評価

  • true && 10 → 10
  • false&& 10 → false
  • どうせfalseで、10を見ないでfalse
  • を直接出力します
  • true||10→treuのみがtrueであるため、trueのみが読み出され、->true
  • に戻る
  • false||10→10出て10やっとtreuかflaseか
  • 反応器の素子間に条件文を挿入するよりも、ショートカット評価と3つの演算子
  • をより多く使用する.

    7.7-グループ演算子

  • の括弧((())で囲まれた被演算子の群演算子は、まず自分の被演算子式
  • を評価する.
  • パケット演算子を使用して、演算子の優先度
  • を調整します.
  • 組の演算子は、最も高い演算子優先度
  • を有する.

    7.9-指数演算子

  • の左項の被演算子を基に、右項の被演算子を指数として二乗を繰り返す、数値
  • を返す.
    2 ** 2; // 4
    2 ** 0; // 1
    2 ** -2; // 0.25
  • 指数演算子を導入する前に、Math.pow()メソッド
  • を使用
    Math.pow(2,2) // 4

    指数演算子

  • Math.pow(番号、何回か平方にする)以降は
  • 平方に使用できます.

    7.10-その他の演算子

  • new->コンストラクション関数を呼び出すと、インスタンス
  • が作成されます.
  • インスタンス:一般的には、クラスで現在作成されているオブジェクト
  • の実行中の任意のプロセスを指します.