JavaScriptのLetで可視性をブロックする

そのようなキーワードを使用して、限定されたスコープで変数を定義でき、4つの方法でもこのスコープを制限できます。 OCamlを知っている人はすぐにOcamlのlet ... inとJavaScriptのletの類似点を見つけるでしょう。

十分な言葉で、letの各使用方法を見てみましょう。







Letサポートを有効にする



すぐにLetを使用することはできませんが、心配しないでください。type=“ application / javascript; version = 1.7”を指定するか、バージョン(170)を呼び出すと、Letが動作します。



1ブロックの範囲



letを使用すると、特定のコードブロックでのみ表示される変数を定義できます。

この定義の構文は次のようになります

let(変数の定義){

何らかの表現

}



そして、それをより明確にするために、簡単な例を見てみましょう。 ボブがロシアに住み、DreamPlugを購入したいと考えています。CISでこれは300ドルかかることを知っています。ヨーロッパに行って安く購入し、購入してロシアに戻り、コンセントからコンピューターを持っていることを友人に自慢します。彼が答える価格は300ドルです。

この例を見る

//Bob   dreamplug = new Object(); dreamplug.price = 300; let(dreamplug.price = 150){ //Bob    Bob.buy(dreamplug); // Bob  dream plug  150$ } //Bob    Bob.onmessage = function(event){ if(event.data == " ?")Bob.postmessage(price + "$",event.origin) // Bob-    } //        Bob   buy // ,      JavaScript
      
      







単一の式のスコープ





ブロックの場合とほぼ同じですが、1つの式(考えていた人)に適用されます。 したがって、中括弧を入れないでください。

明確にするために、ボブの例を考えてみましょう。 それで、ボブは子供の頃に落ち、取締役会での分裂の兆候によって彼がどのように反応したかを思い出しました。 彼は、2での可分性に基づいて回答しましたが、3での可分性に基づいて回答する必要がある1つの例を除きます。

この例を見る

 //    pred = function(x)!(x%2) //     pred(3) //      Bob-a   pred(2) let(pred = function(x)!(x%3))pred(4) //    
      
      







一部のHabrovsk居住者(つまり、関数型言語コードが何であるかを知らない人)は、ここでは変数ではなく関数を定義することに気づきましたが、JSは関数型言語コードであり、関数は本格的な型であることを忘れないでください。



forループの中にしましょう



ループのletで変数を定義することもできます。varの定義との唯一の違いは、変数がループのスコープ内になく、それ以外に何もないことです。

ボブに買い物に行かせてください。

この例を見る

 list = ["msp430","avr","pic","msp430 Launch pad"] //Bob         var i = 100; // Bob-    for(let i=0;i<list.length;i++){ Bob.buy(list[i]); //Bob     } Bob.say('   ' + i) //100!!!
      
      







ブロックの中にしましょう





特定のブロック内で変数をletで定義できます。 コードブロックのletの定義との違いは、ここでは変数の定義を開始すると、変数が未定義になり、値を割り当てた場合にのみ未定義にならないことです。 つまり、たとえば。 彼らがボブに彼の好きな数の二乗を尋ねた場合、あなたはそれをすることはできません。

この例を見る

 let i=100 { let i = i * i Bob.say(i) //NaN      let i -   i   i   undefined    undedined  undedined   NaN }
      
      







それにもかかわらず、あなたはこれを行うことができます:

この例を見る

 let i=100 { let m = i * i Bob.say(m) }
      
      







記事と妥当性についてのコメントを聞いてうれしいです。



All Articles