La différence entre var, let et const est que la variable de var est déclarée avant l'exécution du code et que la portée de travail est dans le contexte de l'exécution en cours. Let permet la création d'une variable mais n'agit que dans son bloc. .Quelle est la similitude entre const et let La seule différence est que les variables définies par const ne peuvent pas être modifiées
Cet article présente principalement les différences entre var, let et const via la méthode de création de variables en JavaScript (ES6) , ce qui a un certain effet de référence. J'espère que cela aidera tout le monde.
[Cours recommandés : Tutoriel JavaScript]
var VS let
La principale différence entre var et let n'est pas l'utilisation de la portée de la fonction, mais l'utilisation de la portée du bloc. Cela signifie qu'une variable créée à l'aide du mot-clé let est disponible dans le "bloc" dans lequel elle est créée, ainsi que dans tous les blocs imbriqués.
Exemple
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 }
Dans l'exemple ci-dessus, la raison pour laquelle i, discountedPrice et finalPrice peuvent être utilisés en dehors de la boucle for est qu'ils sont déclarés avec var , et var est la portée de la fonction. Que se passe-t-il si nous remplaçons var par 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未定义
Ce que ce cas nous dit, c'est que les variables déclarées à l'aide de let ont une portée de bloc, pas une portée de fonction. Par conséquent, accéder à i (ou discountedPrice ou finalPrice) en dehors du "bloc" signalera une erreur
La différence suivante est liée à la promotion variable. La définition du levage est "L'interpréteur JavaScript attribue aux déclarations de variables une valeur par défaut non définie pendant la phase dite de "création".
Exemple :
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 Si vous souhaitez utiliser let pour déclarer des variables avant de les déclarer, au lieu d'être indéfinies (comme les variables déclarées à l'aide de var), le programme signalera une erreur
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}
La conclusion est
var : La déclaration de variable est traitée avant l'exécution du code, et sa portée est dans le contexte de son exécution actuelle.
let : L'instruction let nous permet de créer un. variable dont la portée est limitée au bloc dans lequel elle est utilisée.
let VS const
Maintenant que vous comprenez la différence entre var et let, qu'en est-il de const. ? Il s'avère que const est presque identique à let. La différence est qu'une fois qu'une variable reçoit une valeur à l'aide de const, elle ne peut pas être réaffectée à une nouvelle valeur
let name = 'Tyler' const handle = 'tylermcginnis' name = 'Tyler McGinnis' //正确 handle = '@tylermcginnis' //错误
Comme le montre le. ci-dessus, les variables déclarées avec let peuvent être réaffectées, mais les variables déclarées avec const ne peuvent pas être réaffectées. Donc, tant que vous souhaitez qu'une variable soit immuable, vous pouvez la déclarer avec const. Mais déclarer une variable avec const ne signifie pas. qu'il est immuable, juste qu'il ne peut pas être réaffecté, par exemple :
const person = { name: 'Kim Kardashian' } person.name = 'Kim Kardashian West' // 正确 person = {} // 错误
Donc, même si un objet est déclaré comme const, cela ne signifie pas qu'aucune de ses propriétés ne peut être modifiée. qu'il ne peut pas être réaffecté à une nouvelle valeur
Résumé : ce qui précède représente l'intégralité du contenu de cet article. J'espère que cela aidera tout le monde
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!