ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptのvar、let、constの違いは何ですか
var、let、const の違いは、var の変数はコードが実行される前に宣言され、作業スコープは現在の実行のコンテキスト内にあることです。let は変数の作成を許可しますが、そのブロック内でのみ動作します。 const と let の類似点は何ですか 唯一の違いは、const で定義された変数は変更できないことです
この記事では主に var、let、const の違いを JavaScript (ES6) での変数の作成方法を通して紹介します。 、一定の参考効果があるので参考になれば幸いです。
#【おすすめコース: JavaScript チュートリアル #】
var VS let
var と let の主な違いは、関数スコープの使用ではなく、ブロック スコープの使用です。これは、let キーワードを使用して作成された変数は、その変数が作成された「ブロック」内だけでなく、ネストされたブロック内でも使用できることを意味します。例
function discountPrices (prices, discount) { var a = [] for (var i = 0; i < prices.length; i++) { var discountedPrice = prices[i] * (1 - discount) var finalPrice = Math.round(discountedPrice * 100) / 100 a.push(finalPrice) } console.log(i) // 3 console.log(discountedPrice) // 150 console.log(finalPrice) // 150 return a }上記の例で、i、discountPrice、finalPrice を for ループの外で使用できるのは、それらが var および var で宣言されているためです。関数スコープです。 var を let に置き換えるとどうなるでしょうか?
function discountPrices (prices, discount) { let a = [] for (let i = 0; i < prices.length; i++) { let discountedPrice = prices[i] * (1 - discount) let finalPrice = Math.round(discountedPrice * 100) / 100 a.push(finalPrice) } console.log(i) // 3 console.log(discountedPrice) // 150 console.log(finalPrice) // 150 return a } discountPrices([100, 200, 300], .5) // 这儿会报错i未定义このケースからわかることは、let を使用して宣言された変数は関数スコープではなくブロック スコープであるということです。したがって、「ブロック」の外で i (またはdiscountPriceまたはfinalPrice)にアクセスすると、エラーが報告されます。 次の違いは、変数のプロモーションに関連しています。ホイスティングの定義は、「JavaScript インタープリターは、いわゆる「作成」フェーズ中に、変数宣言をデフォルト値の未定義に割り当てます。
例:
function discountPrices (prices, discount) { console.log(discounted) // undefined var a = [] for (var i = 0; i < prices.length; i++) { var discountedPrice = prices[i] * (1 - discount) var finalPrice = Math.round(discountedPrice * 100) / 100 a.push(finalPrice) } console.log(i) // 3 console.log(discountedPrice) // 150 console.log(finalPrice) // 150 return a}If変数を宣言する前に、未定義の変数 (var を使用して宣言された変数など) の代わりに let を使用して変数を宣言すると、プログラムはエラーを報告します
function discountPrices (prices, discount) { console.log(discounted) // 错误 let a = [] for (let i = 0; i < prices.length; i++) { let discountedPrice = prices[i] * (1 - discount) let finalPrice = Math.round(discountedPrice * 100) / 100 a.push(finalPrice) } console.log(i) // 3 console.log(discountedPrice) // 150 console.log(finalPrice) // 150 return a}
結論は次のとおりです#var : 変数宣言はコードが実行される前に処理され、そのスコープは現在の実行コンテキスト内にあります。
let: let ステートメントを使用すると、スコープがブロックに制限された変数を作成できます。
let VS constvar と let の違いは理解できたところで、const はどうなるのでしょうか? const はほぼ同じであることがわかります。 let. しかし、唯一の違いは、 const を使用して変数に値が割り当てられると、新しい値に再割り当てすることはできないということです。
let name = 'Tyler' const handle = 'tylermcginnis' name = 'Tyler McGinnis' //正确 handle = '@tylermcginnis' //错误
上記から、let で宣言された変数は再割り当てできることがわかります。 , しかし、const で宣言された変数はできません。したがって、変数を不変にしたい場合は、const で宣言できます。ただし、変数を const で宣言しても、それが不変であることを意味するわけではありません。たとえば、再割り当てできないだけです。 :
const person = { name: 'Kim Kardashian' } person.name = 'Kim Kardashian West' // 正确 person = {} // 错误
したがって、const を使用する場合でも、オブジェクトを宣言しても、そのプロパティを変更できないという意味ではなく、新しい値に再割り当てできないことを意味するだけです。
概要:以上がこの記事の全内容です。皆様のお役に立てれば幸いです。
以上がJavaScriptのvar、let、constの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。