recherche
Maisoninterface Webjs tutorielLa seule aide-mémoire Javascript dont vous avez besoin !

Only Javascript cheatsheet you need !

Différences entre var, let et const

1. Présentation de var, let et const

Feature var let const
Scope Function-scoped Block-scoped Block-scoped
Re-declaration Allowed within the same scope Not allowed in the same scope Not allowed in the same scope
Re-assignment Allowed Allowed Not allowed after initialization
Initialization Can be declared without initialization Can be declared without initialization Must be initialized at the time of declaration
Hoisting Hoisted but initialized to undefined Hoisted but not initialized Hoisted but not initialized
Fonctionnalité
var

laissons const
ête>
Type Function Scope Block Scope
var Variables are scoped to the enclosing function. Does not support block scope. A var inside a block (if, for, etc.) leaks into the enclosing function or global scope.
let / const Not function-scoped. Variables are confined to the block they are declared in.
Portée Portée fonction À portée de bloc À portée de bloc

Re-déclaration

Autorisé dans le même périmètre Non autorisé dans le même périmètre Non autorisé dans le même périmètre Réaffectation
Autorisé Autorisé Non autorisé après l'initialisation Initialisation
if (true) {
  var x = 10;
  let y = 20;
  const z = 30;
}
console.log(x); // 10 (accessible because of function scope)
console.log(y); // ReferenceError (block-scoped)
console.log(z); // ReferenceError (block-scoped)
Peut être déclaré sans initialisation Peut être déclaré sans initialisation Doit être initialisé au moment de la déclaration
Levage

Hissé mais initialisé à non défini Hissé mais non initialisé Hissé mais non initialisé
2. Différences de portée
Feature var let const
Re-declaration Allowed Not allowed Not allowed
Re-assignment Allowed Allowed Not allowed
Tapez Portée de la fonction Portée du bloc ête> var Les variables sont limitées à la fonction englobante. Ne prend pas en charge la portée du bloc. Une variable à l'intérieur d'un bloc (if, for, etc.) s'infiltre dans la fonction englobante ou dans la portée globale. let/const Ne s'applique pas aux fonctions. Les variables sont confinées au bloc dans lequel elles sont déclarées. Exemple : 3. Re-déclaration et réaffectation Fonctionnalité var laisser const ête> Re-déclaration Autorisé Non autorisé Non autorisé Réaffectation Autorisé Autorisé Non autorisé

Exemple :

if (true) {
  var x = 10;
  let y = 20;
  const z = 30;
}
console.log(x); // 10 (accessible because of function scope)
console.log(y); // ReferenceError (block-scoped)
console.log(z); // ReferenceError (block-scoped)

4. Comportement de levage

Type Hoisting Behavior
var Hoisted to the top of the scope but initialized as undefined.
let Hoisted but not initialized. Accessing it before declaration causes a ReferenceError.
const Hoisted but not initialized. Must be initialized at the time of declaration.
Tapez

Comportement de levage

ête> var
Hissé en haut de la portée mais initialisé comme non défini. laisser
// Re-declaration
var a = 10;
var a = 20; // Allowed

let b = 30;
// let b = 40; // SyntaxError: Identifier 'b' has already been declared

const c = 50;
// const c = 60; // SyntaxError: Identifier 'c' has already been declared

// Re-assignment
a = 15; // Allowed
b = 35; // Allowed
// c = 55; // TypeError: Assignment to constant variable
Hissé mais non initialisé. Y accéder avant la déclaration provoque une ReferenceError.
const

Hissé mais non initialisé. Doit être initialisé au moment de la déclaration. Exemple :
Feature let and const
Block Scope Both are confined to the block in which they are declared.
No Hoisting Initialization Both are hoisted but cannot be accessed before initialization.
Better Practice Preferred over var for predictable scoping.

5. Similitudes entre let et const

Scenario Recommended Keyword
Re-declare variables or use function scope var (generally avoid unless necessary for legacy code).
Variables that may change let (e.g., counters, flags, intermediate calculations).
Variables that should not change const (e.g., configuration settings, fixed values).
Fonctionnalité let et const ête> Portée du bloc Les deux sont confinés au bloc dans lequel ils sont déclarés. Pas d'initialisation du levage Les deux sont hissés mais ne sont pas accessibles avant l'initialisation. Meilleures pratiques Préféré à var pour une portée prévisible. 6. Quand utiliser lequel ? Scénario Mot clé recommandé ête> Re-déclarez les variables ou utilisez la portée de la fonction var (à éviter généralement sauf si cela est nécessaire pour le code existant). Variables susceptibles de changer let (par exemple, compteurs, indicateurs, calculs intermédiaires). Variables qui ne devraient pas changer const (par exemple, paramètres de configuration, valeurs fixes).

7. Explication du levage

Qu'est-ce que le levage ?

Le levage est le comportement par défaut de JavaScript consistant à déplacer les déclarations vers le haut de leur portée pendant la phase de compilation.

  • var : Hissé et initialisé à non défini.
  • let / const : Hissé mais pas initialisé. Cela crée une zone morte temporelle (TDZ) depuis le début du bloc jusqu'à ce que la déclaration soit rencontrée.

Pourquoi le levage fonctionne de cette façon ?

  1. Phase de compilation : JavaScript analyse d'abord le code pour créer un espace mémoire pour les déclarations de variables et de fonctions. A ce stade :
  • Les variables var sont initialisées à undefined.
  • Les variables let et const sont "histées" mais laissées non initialisées, d'où le TDZ.
  • Les déclarations de fonctions sont entièrement levées.
  1. Phase d'exécution : JavaScript commence à exécuter le code ligne par ligne. Les variables et les fonctions se voient attribuer des valeurs au cours de cette phase.

8. Résumé du levage

Type Hoisting Access Before Declaration
var Hoisted and initialized to undefined. Allowed but value is undefined.
let Hoisted but not initialized. Causes a ReferenceError.
const Hoisted but not initialized. Causes a ReferenceError.
Tapez Levage Accès avant déclaration
ête> var Hissé et initialisé à non défini. Autorisé mais la valeur n'est pas définie. laisser Hissé mais pas initialisé. Provoque une ReferenceError. const Hissé mais pas initialisé. Provoque une ReferenceError.

Exemple :

if (true) {
  var x = 10;
  let y = 20;
  const z = 30;
}
console.log(x); // 10 (accessible because of function scope)
console.log(y); // ReferenceError (block-scoped)
console.log(z); // ReferenceError (block-scoped)

Conclusion

  1. Utilisez const autant que possible pour les variables qui n'ont pas besoin d'être réaffectées.
  2. Utilisez let pour les variables qui doivent être réaffectées dans la même portée.
  3. Évitez var sauf si vous travaillez avec du code existant ou si vous exigez un comportement limité à la fonction.

Types de données JavaScript

JavaScript a différents types de données classés en types Primitifs et Non primitifs (référence). Voici une explication de chacun avec des exemples et des différences :


1. Types de données primitifs

Les types primitifs sont immuables, ce qui signifie que leurs valeurs ne peuvent pas être modifiées après leur création. Ils sont stockés directement en mémoire.

Data Type Example Description
String "hello", 'world' Represents a sequence of characters (text). Enclosed in single (''), double (""), or backticks ().
Number 42, 3.14, NaN Represents both integers and floating-point numbers. Includes NaN (Not-a-Number) and Infinity.
BigInt 123n, 9007199254740991n Used for numbers larger than Number.MAX_SAFE_INTEGER (2^53 - 1). Add n to create a BigInt.
Boolean true, false Represents logical values, used in conditions to represent "yes/no" or "on/off".
Undefined undefined Indicates a variable has been declared but not assigned a value.
Null null Represents an intentional absence of value. Often used to reset or clear a variable.
Symbol Symbol('id') Represents a unique identifier, mainly used as property keys for objects to avoid collisions.
Type de données Exemple Description
ête> Chaîne "Bonjour le monde' Représente une séquence de caractères (texte). Inclus entre simple (''), double ("") ou guillemets (). Numéro 42, 3.14, NaN Représente à la fois des nombres entiers et des nombres à virgule flottante. Comprend NaN (Not-a-Number) et Infinity. BigInt 123n, 9007199254740991n Utilisé pour les nombres supérieurs à Number.MAX_SAFE_INTEGER (2^53 - 1). Ajoutez n pour créer un BigInt. Booléen vrai, faux Représente des valeurs logiques, utilisées dans des conditions pour représenter « oui/non » ou « on/off ». Non défini non défini Indique qu'une variable a été déclarée mais qu'aucune valeur ne lui a été attribuée. Nul nul Représente une absence intentionnelle de valeur. Souvent utilisé pour réinitialiser ou effacer une variable. Symbole Symbole('id') Représente un identifiant unique, principalement utilisé comme clés de propriété pour les objets afin d'éviter les collisions.

2. Types de données non primitifs (référence)

Les types non primitifs sont mutables et stockés par référence. Ils sont utilisés pour stocker des collections de données ou des entités plus complexes.

Data Type Example Description
Object {name: 'John', age: 30} A collection of key-value pairs. Keys are strings (or Symbols), and values can be any type.
Array [1, 2, 3, "apple"] A list-like ordered collection of values. Access elements via index (e.g., array[0]).
Function function greet() {} A reusable block of code that can be executed. Functions are first-class citizens in JavaScript.
Date new Date() Represents date and time. Provides methods for manipulating dates and times.
RegExp /pattern/ Represents regular expressions used for pattern matching and string searching.
Map new Map() A collection of key-value pairs where keys can be of any type, unlike plain objects.
Set new Set([1, 2, 3]) A collection of unique values, preventing duplicates.
WeakMap new WeakMap() Similar to Map, but keys are weakly held, meaning they can be garbage-collected.
WeakSet new WeakSet() Similar to Set, but holds objects weakly to prevent memory leaks.

3. Principales différences entre les types primitifs et non primitifs

Aspect Primitive Types Non-Primitive Types
Mutability Immutable: Values cannot be changed. Mutable: Values can be modified.
Storage Stored directly in memory. Stored as a reference to a memory location.
Copy Behavior Copied by value (creates a new value). Copied by reference (points to the same object).
Examples string, number, boolean, etc. object, array, function, etc.

4. Cas particuliers

type d'opérateur

  • typeof null : renvoie "objet" en raison d'un bug historique dans JavaScript, mais null n'est pas un objet.
  • typeof NaN : renvoie « numéro », même si cela signifie « Pas-un-numéro ».
  • typeof function : renvoie "function", qui est un sous-type d'objet.

Saisie dynamique

JavaScript permet aux variables de contenir des valeurs de différents types au moment de l'exécution :

if (true) {
  var x = 10;
  let y = 20;
  const z = 30;
}
console.log(x); // 10 (accessible because of function scope)
console.log(y); // ReferenceError (block-scoped)
console.log(z); // ReferenceError (block-scoped)

5. Exemples pour chaque type de données

Types primitifs

// Re-declaration
var a = 10;
var a = 20; // Allowed

let b = 30;
// let b = 40; // SyntaxError: Identifier 'b' has already been declared

const c = 50;
// const c = 60; // SyntaxError: Identifier 'c' has already been declared

// Re-assignment
a = 15; // Allowed
b = 35; // Allowed
// c = 55; // TypeError: Assignment to constant variable

Types non primitifs

console.log(a); // undefined (hoisted)
var a = 10;

console.log(b); // ReferenceError (temporal dead zone)
let b = 20;

console.log(c); // ReferenceError (temporal dead zone)
const c = 30;

6. Résumé du type de résultats

Expression Result
typeof "hello" "string"
typeof 42 "number"
typeof 123n "bigint"
typeof true "boolean"
typeof undefined "undefined"
typeof null "object"
typeof Symbol() "symbol"
typeof {} "object"
typeof [] "object"
typeof function(){} "function"
Expression
Résultat
ête> type de "bonjour" "chaîne" type de 42 "numéro" type de 123n "bigint" type de vrai "booléen" type de non défini "non défini" type de null "objet" type de symbole() "symbole" type de {} "objet" type de [] "objet" type de fonction(){} "fonction"

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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Remplacer les caractères de chaîne en javascriptRemplacer les caractères de chaîne en javascriptMar 11, 2025 am 12:07 AM

Explication détaillée de la méthode de remplacement de la chaîne JavaScript et de la FAQ Cet article explorera deux façons de remplacer les caractères de chaîne dans JavaScript: le code JavaScript interne et le HTML interne pour les pages Web. Remplacer la chaîne dans le code JavaScript Le moyen le plus direct consiste à utiliser la méthode Remplace (): str = str.replace ("trouver", "remplacer"); Cette méthode remplace uniquement la première correspondance. Pour remplacer toutes les correspondances, utilisez une expression régulière et ajoutez le drapeau global G: str = str.replace (/ fi

Comment créer et publier mes propres bibliothèques JavaScript?Comment créer et publier mes propres bibliothèques JavaScript?Mar 18, 2025 pm 03:12 PM

L'article discute de la création, de la publication et du maintien des bibliothèques JavaScript, en se concentrant sur la planification, le développement, les tests, la documentation et les stratégies de promotion.

Comment optimiser le code JavaScript pour les performances dans le navigateur?Comment optimiser le code JavaScript pour les performances dans le navigateur?Mar 18, 2025 pm 03:14 PM

L'article traite des stratégies pour optimiser les performances JavaScript dans les navigateurs, en nous concentrant sur la réduction du temps d'exécution et la minimisation de l'impact sur la vitesse de chargement de la page.

Comment déboguer efficacement le code JavaScript à l'aide d'outils de développeur de navigateur?Comment déboguer efficacement le code JavaScript à l'aide d'outils de développeur de navigateur?Mar 18, 2025 pm 03:16 PM

L'article traite du débogage efficace de JavaScript à l'aide d'outils de développeur de navigateur, de se concentrer sur la définition des points d'arrêt, de l'utilisation de la console et d'analyser les performances.

Effets de la matrice jQueryEffets de la matrice jQueryMar 10, 2025 am 12:52 AM

Apportez des effets de film de matrice à votre page! Ceci est un plugin jQuery cool basé sur le célèbre film "The Matrix". Le plugin simule les effets de caractère vert classique dans le film, et sélectionnez simplement une image et le plugin le convertira en une image de style matrice remplie de caractères numériques. Venez et essayez, c'est très intéressant! Comment ça marche Le plugin charge l'image sur la toile et lit le pixel et les valeurs de couleur: data = ctx.getImagedata (x, y, settings.grainsize, settings.grainsize) .data Le plugin lit intelligemment la zone rectangulaire de l'image et utilise jQuery pour calculer la couleur moyenne de chaque zone. Ensuite, utilisez

Comment construire un simple curseur jQueryComment construire un simple curseur jQueryMar 11, 2025 am 12:19 AM

Cet article vous guidera pour créer un carrousel d'image simple à l'aide de la bibliothèque JQuery. Nous utiliserons la bibliothèque BXSLider, qui est construite sur jQuery et offre de nombreuses options de configuration pour configurer le carrousel. De nos jours, Picture Carrousel est devenue une fonctionnalité incontournable sur le site Web - une image vaut mieux que mille mots! Après avoir décidé d'utiliser le carrousel d'image, la question suivante est de savoir comment la créer. Tout d'abord, vous devez collecter des images de haute qualité et haute résolution. Ensuite, vous devez créer un carrousel d'image en utilisant HTML et un code JavaScript. Il existe de nombreuses bibliothèques sur le Web qui peuvent vous aider à créer des carrousels de différentes manières. Nous utiliserons la bibliothèque BXSLider open source. La bibliothèque Bxslider prend en charge la conception réactive, de sorte que le carrousel construit avec cette bibliothèque peut être adapté à n'importe quel

Amélioration du balisage structurel avec JavaScriptAmélioration du balisage structurel avec JavaScriptMar 10, 2025 am 12:18 AM

Points clés Le marquage structuré amélioré avec JavaScript peut considérablement améliorer l'accessibilité et la maintenabilité du contenu de la page Web tout en réduisant la taille du fichier. JavaScript peut être utilisé efficacement pour ajouter dynamiquement des fonctionnalités aux éléments HTML, tels que l'utilisation de l'attribut CITE pour insérer automatiquement les liens de référence en références de bloc. L'intégration de JavaScript avec des balises structurées vous permet de créer des interfaces utilisateur dynamiques, telles que des panneaux d'onglet qui ne nécessitent pas de rafraîchissement de page. Il est crucial de s'assurer que les améliorations JavaScript ne gênent pas la fonctionnalité de base des pages Web; même si JavaScript est désactivé, la page doit rester fonctionnelle. La technologie avancée JavaScript peut être utilisée (

Comment télécharger et télécharger des fichiers CSV avec AngularComment télécharger et télécharger des fichiers CSV avec AngularMar 10, 2025 am 01:01 AM

Les ensembles de données sont extrêmement essentiels pour créer des modèles d'API et divers processus métier. C'est pourquoi l'importation et l'exportation de CSV sont une fonctionnalité souvent nécessaire. Dans ce tutoriel, vous apprendrez à télécharger et à importer un fichier CSV dans un

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.