// ES6 — let
let a = 1;
if (1 === a) {
let b = 2 ;
}
pour (soit c = 0; c < 3; c++) {
// …
}
fonction permetDeclareAnotherOne() {
let d = 4;
>
console.log(a); // 1
console.log(b); // ReferenceError : b n'est pas défini
console.log ( c); // ReferenceError : c n'est pas défini
console.log(d); // ReferenceError : d n'est pas défini
// window
console.log(window.a) ; // 1
console.log(window.b); // non défini
console.log(window.c); // non défini
console.log(window.d); >Comme nous pouvons le voir, cette fois, seule la variable a est déclarée comme globale. Nous pouvons donc déclarer des variables de portée bloc, qui ne sont pas définies en dehors d'elle.
var name = 'shitu91'
var name = 'shituketang'
console.log(name) //shituketang
>
Utilisez var. Les deux sorties sont shituketang. Les variables internes que vous voyez couvrent maintenant les variables externes. C'est parce que ES5 n'a qu'une portée globale (. scope) et la portée de la fonction, il n’y a pas de portée au niveau du bloc.
if (true) {
let name = 'shituketang'
console.log(name) //shituketang
}
demo2 variable de boucle comptée divulguée en tant que variable globale
var a = [];
for (var i = 0; i < 10 ; i++) {
a[i] = function () {
console.log(i);
};
}
a6; // 10
Dans le code ci-dessus , la variable i est déclarée par var et est valide dans la portée globale. Ainsi, à chaque boucle, la nouvelle valeur i écrasera l'ancienne valeur, ce qui fera que la sortie finale sera la valeur de i lors du dernier tour.
Ce problème ne se produira pas lors de l'utilisation de let.
pour (soit i = 0; i < 10; i++) {
a[i] = function () {
console.log(i );
};
}
a6; // 6
demo3
var clickBoxs = document.querySelectorAll('.clickBox')
for (var i = 0; i < ; clickBoxs.length; i++){
clickBoxs[i].onclick = function(){
console.log(i)
}
function iteratorFactory(i){
var onclick = function(e){
console.log(i)
>
return onclick;
>
var clickBoxs = document .querySelectorAll('.clickBox')
for (var i = 0; i < clickBoxs.length; i++){
clickBoxs[i].onclick = iteratorFactory(i)
>
const Également utilisé pour déclarer des variables, mais les constantes sont déclarées. Une fois déclarée, la valeur d'une constante ne peut plus être modifiée.
const PI = Math.PI
Lorsque nous essayons de modifier la const Lors de la déclaration de constantes, le navigateur signalera une erreur. Const a un bon scénario d'application, c'est-à-dire des variables déclarées lorsque nous faisons référence à des bibliothèques tierces. Utiliser const pour déclarer peut éviter les bugs causés par un renommage accidentel à l'avenir : +
// todo
let et const sont déclarées uniquement dans le bloc le plus proche (entre accolades) Valide
Quand en utilisant la déclaration constante const, veuillez utiliser des variables majuscules, telles que : CAPITAL_CASING
const doit être attribué lors de la déclaration
Let :
console.log(name;
console.log (new_name);
Console :
"Max"
Ici, nous voyons que let et var font la même chose. Alors, quelle est la différence ?
let age = 24; // dans la portée de l'instruction 'if'
>
console .log(age); // n'est pas dans la portée de l'instruction 'if'
Console :
"Erreur de référence : l'âge n'est pas défini
Comme autre exemple, lors de l'utilisation de variables dans une boucle for , l'index ne sera plus utilisé en dehors de la boucle !
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!