簡単に見:varは、聞かせて、constの

 varがスコープが所属再定義再割り当て:関数スコープを、

 

変数のみletコマンド、ブロックスコープブロック内で有効と宣言してみましょう。

 

constのは、一定の読み取り専用を宣言、定数の一回宣言された値を変更することはできません。

 

ポータルます。https://www.runoob.com/w3cnote/es6-let-const.html

 

比較:範囲:VAR:関数スコープので、以下、VaRのtotalPriceグローバル;せ、CONSTは、範囲内の場合にのみ条件を作用、ブロックレベルの範囲です。

= 10.価格VAR; 
VAR COUNT = 10; 
IF(COUNT> 5){ totalPrice VAR = 0.9 * 10; 
    はconsole.log( `totalPriceのVAR:totalPrice} {$`); 
} 
にconsole.log(totalPrice); // 成功ここでは、出力9 totalPriceは、グローバル変数にアクセスすることができるということです

    

   

= 10.価格VAR、
VAR COUNT = 10; 
IF(COUNT> 5。){ totalPriceましょう = 0.9×10; 
    はconsole.log( `totalPriceてみましょう:totalPrice} {$`); 
} 
; //にconsole.log(totalPrice)しますエラー(キャッチされないにReferenceError:totalPriceが定義されていない)、ここでtotalPriceは、ブロックレベルの変数をさせることです、外部アクセスできない

   

 

比較II:範囲:次のコードのみ宣言型が同じ、VARサポートされtotalPriceを再割り当てする再割り当て、及びtotalPrice、最初のグローバル変数にさせ、第二のブロックのみ、ステージに作用していますしたがって、最終的な出力0

        価格= 10でした。
        カウント数= 10でした。    = 0合計金額でした。
        (>カウント5){場合  合計価格だった= 10 * 0.9; 
            console.log( `合計価格だった:$ {合計金額}「); // 9 
        } 
        にconsole.log(合計金額)。// 9
    
          

  

        VAR価格= 10; 
        VAR数= 10; totalPrice = 0ましょう。
        もし{(5>カウント)させtotalPrice = 10 * 0.9。
            console.log( `せtotalPrice:$ {totalPrice}`)。// 9 
        } 
        にconsole.log(totalPrice)。// 0
       
           

  

比較3:VAR、聞かせて、CONST:それは再割り当てすることはできませんが、それはその属性値を変更することができ、違いとして、ターゲットのconstノート、割り当て、定義

        名前= VAR "日"; 
        VAR名= "Sun2は、"; //再定義することができる
        名前= "黎平を"; //再割り当てすることができます
        はconsole.log( `VAR名:$ {名前}`); // VAR 名前:黎平は

        聞かせて年齢= 10; 
        //年齢= 20でみましょう; //は間違っている、再定義することはできません
        年齢= 22; //再割り当てすることができる
        にconsole.log( `年齢みましょう:$ { `年齢を}); / / LET年齢:22 

        CONSTセックス= "女性"; 
        // constのセックス= "M"; //は、間違っていることを再定義することができない
        、//は間違って再割り当てすることはできません; //性別= "男性" 
        はconsole.logを( `constの性別:$ {性別 }`); // F

  

第四点は:コントロールの属性を変更します。

      製品= {constの
            名前: "電話" 価格:5999 
        }; 
        //属性の変更することができ
        、製品を。価格= 8999; 
        はconsole.log(JSON.stringify(製品)); // { "名": "電話"、 " 。価格":8999 } 
        //あなたが凍結:(ターゲットを凍結するために使用する方法であるように、製品を変更しない場合)
        のconst = product2のObject.freeze({ 
            名:"電話」、価格:5999 
        }); 
        product2。価格= 9999; 
        コンソール。ログイン(JSON.stringify(product2)); // { "名": " 電話"、"価格。":5999 }

            





           
        

  

第五:実際のアプリケーション・プロセスの詳細

    (のためのVAR I、Iは<5; = 0 Iは++){ 
            にconsole.log(VAR `Iは$` {I} IS); //これは出力0,1,2,3,4で

            のsetTimeout(関数(){ 
                コンソール.logの( `VAR iは$ {ある ` I}); // この意志出力5. 5 

            }、1000); 
        } 

        はconsole.log(私は$ `` {I})であり; //出力5はなり


        にconsole.log ( `---------------のsetTimeoutデジタル出力0-4を解決------------------------- `-----)は、


        (のためのlet I = 0;私は<5; Iは++){ 
            にconsole.logを(` iはLET $ `{I}); //これは出力0,1,2,3であり、図4 

            のsetTimeout(関数(){ 
                にconsole.log( `LET私は` {I})$であり; //これは出力0,1,2,3,4である

            }、1000); 
        }

  

 第六:同じ分析:メソッドを実行するときに[1]、I = 3が持っているので、あなたは2,3を聞かせすることができ、出力タイプを変更したい場合は、出力3であり、

        VaRのA = []; 
        ため(VAR I = 0; iは3 '; iは++){ 
            [I] =関数(){にconsole.log(I)} 
        }   [1](); // 3 
        [2](); // 3
      

 

第七:ときに、ブロックレベル要素

       10 = VAR; 
        IF(1){ 
            A = 100;のみ現在のブロックを見つけるために、割り当てに、宣言せ含む//ブロックレベル要素
            にconsole.log(A); //ので、ここで与えられたが、あろう
            せ= 。1; 
            にconsole.log(A); 
        }

  

第八:可変リフト:

        console.log(ABC); //未定義、可変リフト、実際の構文解析します。var ABC;にconsole.log(ABC); ABC = 10; 
        VARのABC = 10; 


        //コンソール(NUM); //が間違っていること
        聞かせてNUM = 10; 

        間違って//console.log(filename);// 
        のconstファイル名= "abc.txt"。

  

最後に書かれた:使用するだけ指示よりも、Baiduは、容易に理解することができ、さらなる研究の原則に従います

 

おすすめ

転載: www.cnblogs.com/hanliping/p/11298060.html