JS変数、演算子(PurpleCode Studio)

15618 ワード

へんすう


varキーワードの欠点

  • 同じ名前を複数回宣言できる
  • 有効範囲に問題があります.
    varキーワードには基本的にfunctionscopeがあります.
  • 条件文内にresultという変数が宣言され、if条件文の外でresultが使用可能な本当に奇妙な状況が発生しました.
    var score = 90;
    
    if(score >= 80){
        var result = "pass";
    }else{
        var result = "fail";
    }
    
    console.log(result);//pass
    
    ------------------------------------------------
     
    var score = 90;
    
    if(score >= 80){
        let result = "pass";
    }else{
        let result = "fail";
    }
    
    console.log(result); //result is not defined
    
    ------------------------------------------------
      
      var score = 90;
    
    function PassOrFail(score){
    if(score >= 80){
        var result = "pass";
    }else{
        var result = "fail";
    }
    };
    PassOrFail(score);
    console.log(result); //result is not defined
  • ホストの問題
    Hoisting(護送):プログラムで変数を宣言しても、プログラムの先頭で宣言するように、他の文の前に変数を生成することを意味し、変数の宣言を簡単に引き上げることを意味します.
  • letとconst

  • let:可変値入力用
  • constキーワード:letとは異なり、定数を宣言するためのキーワード
  • ES 6新規データ型Symbol


    ???
    自分以外のどの値も異なるユニークな値を象徴しています.
    log.levels = {
        DEBUG: Symbol('debug'),
        INFO: Symbol('info'),
        WARN: Symbol('warn'),
    };
    log(log.levels.DEBUG, 'debug message');
    log(log.levels.INFO, 'info message');
    
    Symbolにパラメータを渡して生成したシンボルに説明を追加できます.

    演算子

  • Falsy制限値:null、undefined、0、"、NaNなど
  • 真の値:Falsy値を除く残りの値
  • const arr=[1,2,3,null,undefined,"null"];
    
    const falsyOrTruthy =(arr)=> arr.forEach( value => {
        if (!value) {
          console.log(`Falsy  ${value}`);
          
        }
        else
            console.log(`Truthy ${value}`);
      });
      
    falsyOrTruthy(arr);
    /*
    Truthy 1
    Truthy 2
    Truthy 3
    Falsy  null
    Falsy  undefined
    Truthy null
    */

    ==と===

    
    console.log(10 == "10"); // true
    
    console.log(null == undefined); // true
    
    console.log(10 === "10"); // false
    
    console.log(null === undefined); // false

    空の連結演算子

  • 最近追加された構文
  • は古いブラウザでは機能せず、
  • を学ぶには複数の文字を使用する必要があります.
    a??bの結果は?
    a nullでもundefinedでもない.そうしないとa
    それ以外に、b
    let idList = [annie, jiwon,'',undefined,null,0];
    
    const getId=(list)=>{
        const result = list.map((id)=>{
            id=id??100;
        })
        console.log(result);
    };
    
    getId(idList);
      
     //error
     // id = id??100;
      //       ^
      //  unexpected token ?