Cet article a été examiné par Wern Ancheta et Camilo Reyes. Merci à tous les pairs examinateurs de SitePoint pour avoir obtenu le contenu de SitePoint à son meilleur!
jQuery est capable de capturer presque tous les comportements d'interaction des utilisateurs dans une page Web et de le définir comme des événements. L'importance des événements est qu'ils vous permettent de répondre en conséquence en fonction des actions de l'utilisateur. Par exemple, vous pouvez écrire du code pour modifier la couleur d'arrière-plan d'une page Web en fonction des clics du bouton ou des événements de défilement.
jQuery a de nombreuses méthodes rapides, telles que contextmenu()
, hover()
et keyup()
, pour gérer différents événements. En plus des méthodes dédiées, jQuery fournit également une méthode courante on
qui vous permet de joindre des gestionnaires à tout événement: on('eventName', handler)
. N'oubliez pas que ces méthodes ne sont que des emballages pour les événements DOM standard auxquels vous pouvez ajouter des gestionnaires en pur javascript.
Ce tutoriel examinera rapidement toutes ces méthodes d'événements (divisées en cinq grandes catégories) et discutera des meilleures pratiques lors de leur utilisation.
points clés
- Les événements jQuery capturent les interactions utilisateur, permettant des applications Web réactives et interactives. Utilisez des méthodes comme
.on()
pour attacher des gestionnaires d'événements. - Les événements de navigateur dans jQuery incluent la gestion des erreurs, le redimensionnement des fenêtres et le défilement, où certaines méthodes spécifiques dans les versions plus récentes sont obsolètes, mettant l'accent sur l'utilisation de
.on('eventName', handler)'
. - L'événement de chargement de document garantit que le script ne s'exécute qu'après que le DOM est entièrement prêt, évitant les erreurs liées aux éléments non initialisés.
- Les événements de clavier et de souris en jQuery gèrent une variété d'interactions, des pressions de clés au mouvement de la souris, y compris
keydown()
,keyup()
,click()
etmousemove()
. - Les événements de formulaire gèrent l'entrée et les interactions de l'utilisateur dans un formulaire, JQuery fournit des événements dédiés pour gérer efficacement la concentration, les changements et les soumissions.
événements de navigateur
Cette catégorie contient trois événements: error
, resize
et scroll
. L'événement error
est déclenché lorsque des éléments tels que les images sont incorrectement chargés. Sa méthode de raccourci a été obsolète depuis JQuery version 1.8, vous devez donc utiliser on('error', handler)
à la place.
resize
événement
Cet événement est déclenché chaque fois que la taille de la fenêtre du navigateur change. Différents navigateurs peuvent appeler le gestionnaire resize
de différentes manières en fonction de la méthode d'implémentation. Internet Explorer et les navigateurs basés sur WebKit appellent les gestionnaires en continu, tandis que les navigateurs comme l'opéra ne l'appellent que lorsque l'événement resize
se termine.
Le code de code suivant échange des images basées sur la largeur de la fenêtre src
.
$(window).resize(function() { var windowWidth = $(window).width(); if (windowWidth < 768) { $("img").attr("src", "image-src-here.jpg"); // 此處更改圖像src。 } });
Cette démonstration de codepen montre l'effet réel de l'événement:
scroll
événement
L'élément peut déclencher cet événement lorsque l'utilisateur défile vers différentes positions dans un élément spécifique. à l'exception de l'objet window
, tout élément avec une barre de défilement peut déclencher cet événement. Par exemple, tout élément qui définit l'attribut overflow
à scroll
ou tout iframe de défilement peut déclencher cet événement.
N'oubliez pas que le gestionnaire est appelé chaque fois que la position de défilement change. La cause du parchemin n'a pas d'importance. Il peut être déclenché en appuyant sur la touche flèche, en cliquant ou en faisant glisser la barre de défilement ou en utilisant la roue de la souris. Dans le code ci-dessous, nous vérifions si l'utilisateur fait défiler plus de 500 pixels et effectue des opérations.
$(window).resize(function() { var windowWidth = $(window).width(); if (windowWidth < 768) { $("img").attr("src", "image-src-here.jpg"); // 此處更改圖像src。 } });
Dans la démo de codepen ci-dessous, si vous continuez à faire défiler et à atteindre près du bas, vous devriez voir une notification vous indiquant que vous avez presque atteint le bas de la page:
événement de chargement de documents
jQuery a trois méthodes, qui sont déclenchées en fonction de l'état du document ou du DOM. Ce sont load
, unload
et ready
.
load()
peut être utilisé pour attacher un gestionnaire à tout élément qui charge les ressources externes telles que les images, les scripts, les iframes et window
objets eux-mêmes. L'événement est licencié lorsque l'élément qu'il attache et que tous ses éléments enfants sont entièrement chargés. Lorsqu'il est utilisé avec des images, il apporte quelques problèmes. Tout d'abord, il ne bouillonnera pas correctement l'arbre Dom. Le deuxième problème est qu'il n'est ni fiable ni croisement.
Lorsque l'utilisateur quitte de la navigation Web, l'événement unload
est déclenché. Cela peut être d? au fait que l'utilisateur a cliqué sur le lien, a tapé une nouvelle URL dans la barre d'adresse ou a fermé la fenêtre du navigateur. Le rechargement de la page déclenche également cet événement. Veuillez noter que l'utilisation de preventDefault()
n'annulera pas l'événement unload
. De plus, la plupart des navigateurs ignorent les appels à alert()
, confirm()
et prompt()
à l'intérieur de ce gestionnaire d'événements, ce qui signifie que le code suivant ne fonctionnera pas:
$(window).scroll(function() { if ($(window).scrollTop() >= 500) { $("#alert").text("您已經(jīng)滾動足夠了!"); // 更新警報框內的文本。 } });
Les deux load()
et unload()
ont été dépréciés depuis la version 1.8.
ready
événement
Dans la plupart des cas, tous les éléments (tels que les images) n'ont pas besoin d'être entièrement chargés tant que le script peut fonctionner sans aucun problème. Ce dont vous avez besoin pour vous assurer, c'est que la hiérarchie DOM est entièrement construite. L'événement ready
gère cela pour vous. Tous les gestionnaires attachés à cet événement ne seront exécutés qu'après que le DOM soit prêt. à l'intérieur du gestionnaire, vous pouvez exécuter le code jQuery ou attacher le gestionnaire d'événements à d'autres éléments sans vous en soucier.
La démonstration de codepen ci-dessous charge des images haute résolution. Vous remarquerez que le DOM est prêt avant que l'image ne soit entièrement chargée.
Si votre code dépend de la valeur de certaines propriétés de style CSS, vous devez d'abord fournir une référence à la feuille de style correspondante ou au style intégré avant de l'exécuter.
événements de clavier
Les événements du clavier peuvent être déclenchés par l'interaction de tout utilisateur avec le clavier. Chacun de ces événements contiendra des informations sur la presse de touches et le type d'événement. Il y a trois raccourcis d'événements de clavier dans jQuery - keydown()
, keyup()
et keypress()
.
keyup
et keydown
événements
Comme le nom l'indique, keyup
sera déclenché lorsque l'utilisateur libère la touche du clavier; keydown
sera déclenché lorsque l'utilisateur appuie sur la touche du clavier. Le gestionnaire des deux événements peut être attaché à n'importe quel élément, mais seul le gestionnaire de l'élément actuellement avec focus sera déclenché.
Il est recommandé d'utiliser l'attribut which
de l'objet événement pour déterminer quelle touche est enfoncée. En effet, le navigateur utilise différentes propriétés pour stocker ces informations, et jQuery normalise l'attribut which
pour récupérer de manière fiable ces informations.
Une autre chose qui mérite d'être rappelée est que les deux événements ne font pas de distinction entre <kbd>a</kbd>
et <kbd>shift a</kbd>
. Dans ce dernier cas, <kbd>shift</kbd>
et <kbd>a</kbd>
sont enregistrés séparément. Dans le code ci-dessous, je montre à l'utilisateur une bo?te d'alerte qui enregistre tous les événements keydown
. Lorsque la touche <kbd>y</kbd>
est enfoncée, un élément spécifique est supprimé du DOM.
$(window).resize(function() { var windowWidth = $(window).width(); if (windowWidth < 768) { $("img").attr("src", "image-src-here.jpg"); // 此處更改圖像src。 } });
keypress
événement
Cet événement est similaire à l'événement keydown
. Une différence majeure est que les modificateurs et les clés non imprimées (comme <kbd>Shift</kbd>
, <kbd>Esc</kbd>
, etc.) ne déclenchent pas l'événement keypress
. Quand je dis que vous ne devriez pas utiliser l'événement keypress
pour capturer des clés spéciales (telles que les clés des flèches), je ne peux pas trop le mettre. Lorsque vous souhaitez savoir quel personnage (comme un ou a) vous avez entré, vous devez utiliser keypress
.
Le code de code suivant cache des éléments basés sur la touche appuyée:
$(window).scroll(function() { if ($(window).scrollTop() >= 500) { $("#alert").text("您已經(jīng)滾動足夠了!"); // 更新警報框內的文本。 } });
événement de souris
Un événement de souris est déclenché lorsque l'utilisateur interagit avec un dispositif de pointage (comme une souris). Ces événements peuvent être basés sur des clics (tels que click
, dblclick
et contextmenu
) ou basés sur le mobile (tels que mouseenter
, mouseleave
et mousemove
). Dans cette section, je discuterai brièvement de tous ces événements et inclurai quelques démonstrations pour illustrer les légères différences entre elles.
événements basés sur un clic
jQuery définit cinq méthodes d'événements basés sur un clic. Les événements mousedown
et mouseup
(comme le montrent le nom) sont licenciés lorsque l'utilisateur appuie et libère le bouton de la souris sur l'élément, respectivement. D'un autre c?té, l'événement click
est déclenché uniquement lorsque le bouton de la souris est enfoncé sur l'élément spécifié puis libéré.
dblclick
légèrement compliqué. Pour que les événements soient enregistrés comme dblclick
, il devrait y avoir deux clics de souris rapides avant l'expiration d'un intervalle de comptage lié au système. Vous ne devez pas attacher le gestionnaire à la fois click
et dblclick
d'un seul élément, car les événements déclenchés par un double clic sont spécifiques au navigateur. Certains navigateurs peuvent enregistrer deux événements à un seul clic avant de double-cliquer, tandis que d'autres ne peuvent enregistrer qu'un seul événement de clic avant de double-cliquer.
L'événement contextmenu
est déclenché après clic droit sur l'élément mais avant que le menu contextuel ne soit affiché. Cela signifie que vous pouvez utiliser le code correspondant dans le gestionnaire d'événements pour empêcher le menu contextuel par défaut de s'afficher.
Le code d'extrait de code suivant empêche l'affichage du menu contextuel par défaut lorsqu'il est en clic droit, mais affiche plut?t un menu personnalisé:
$(window).resize(function() { var windowWidth = $(window).width(); if (windowWidth < 768) { $("img").attr("src", "image-src-here.jpg"); // 此處更改圖像src。 } });
Cette démo applique le style CSS à l'image lorsque vous cliquez sur une image et dispose d'un menu contextuel personnalisé:
événements mobiles
Certains événements sont basés sur le mouvement du pointeur de la souris, entrant ou supprimant un élément. Il existe six méthodes d'événements mobiles.
Commen?ons par les événements mouseover
et mouseenter
. Comme son nom l'indique, les deux événements sont tirés lorsque le pointeur de la souris entre dans un élément. De même, lorsque le pointeur de souris quitte l'élément, les événements mouseleave
et mouseout
sont tirés.
mouseleave
et mouseout
est que la première n'est tirée que lorsque le pointeur de la souris se déplace à l'extérieur de l'élément qui le lie. D'un autre c?té, même pour le mouvement en dehors de tous les descendants de l'élément, mouseout
sera déclenché. Il y a exactement la même différence entre mouseenter
et mouseover
.
Voyons comment l'événement compte le changement en fonction du mouvement de la souris, mouseenter
et mouseover
. Essayez d'entrer dans la grande bo?te bleue à droite et arrêtez-vous avant d'entrer dans la bo?te rose à droite. mouseenter
et mouseover
devraient désormais avoir des valeurs de 1. Si vous vous déplacez à gauche et entrez dans la bo?te rose, le nombre mouseover
passera à 2. Cela se produit parce que l'événement de mouseover
bouillonne. L'événement mouseover
sur la bo?te rose "Bubles" à la bo?te bleue extérieure, augmentant le nombre de l'événement mouseover
par 1. L'événement mouseover
se déclenche à nouveau lorsque vous vous déplacez plus vers la gauche et s'arrête entre les deux bo?tes roses. Lorsque vous atteignez l'extrémité gauche de la bo?te bleue, le nombre de l'événement mouseover
doit être 5, et le nombre de l'événement mouseenter
devrait toujours être 1.
Le même raisonnement exactement peut être utilisé pour expliquer les événements du nombre de mouseleave
et mouseout
. Essayez de vous déplacer dans différentes directions et voyez comment le nombre change.
mousemove
et hover
événements
Lorsque le pointeur de la souris se déplace dans l'élément, l'événement mousemove
est déclenché. Tant qu'il y a un mouvement de souris, il déclenchera même s'il est aussi petit qu'un pixel. Par conséquent, des centaines d'événements peuvent être déclenchés en très peu de temps. Comme vous pouvez l'imaginer, effectuer des opérations complexes dans un gestionnaire d'événements fera du retard d'un navigateur. Il est recommandé de rendre le gestionnaire d'événements mousemove
aussi efficace que possible et de le délier s'il n'est plus nécessaire.
hover
libre uniquement lorsque le pointeur de la souris entre ou quitte l'élément. Il existe deux fa?ons d'appeler la méthode hover
. Le premier est:
$(window).resize(function() { var windowWidth = $(window).width(); if (windowWidth < 768) { $("img").attr("src", "image-src-here.jpg"); // 此處更改圖像src。 } });
Ici, lorsque le pointeur de la souris entre dans l'élément, handlerIn()
est exécuté lorsque le pointeur de la souris quitte l'élément. La deuxième méthode est: handlerOut()
$(window).scroll(function() { if ($(window).scrollTop() >= 500) { $("#alert").text("您已經(jīng)滾動足夠了!"); // 更新警報框內的文本。 } });Cette fois, la même fonction
sera exécutée lors de l'entrée et de la sortie de l'élément. handlerInOut
former des événements
Les formulaires sont partout sur Internet. Presque chaque utilisateur remplit le formulaire à un moment donné. JQuery a un moyen spécial de gérer les événements de forme. Ces événements peuvent être licenciés lorsque la valeur change ou perd la mise au point. Il y a sept événements de forme au total, et nous en discuterons un par un.
, blur
, focus
, focusin
et focusout
événements
Chaque fois qu'un élément gagne une mise au point, l'événement focus
est déclenché. Il ne fonctionne qu'avec des éléments de forme et des balises d'ancrage. Pour déclencher une concentration sur tout autre élément, vous devez définir l'attribut tabindex
de l'élément. N'oubliez pas que dans Internet Explorer, la mise au point sur les éléments cachés peut provoquer une erreur. Si vous devez déclencher l'événement focus
sans définir explicitement le foyer, vous pouvez appeler la méthode triggerHandler("focus")
.
Chaque fois que l'élément perd le focus, l'événement blur
est déclenché. Dans les navigateurs plus anciens, cet événement s'applique uniquement aux éléments de la forme.
Contrairement aux événements focus
, focusin
est déclenché chaque fois qu'un élément ou ses descendants se concentrent. De même, focusout
est déclenché chaque fois qu'un élément ou ses descendants perdent la focalisation. Donc, si vous voulez que l'événement bouillonne, vous devez utiliser les deux événements.
select
, change
et submit
événements
Lorsque la valeur d'un élément change, l'événement change
est déclenché. Cet événement s'applique uniquement aux éléments <input>
, <select>
et <textarea>
. Pour les cases à cocher, les boutons radio et les cases de sélection, cet événement est déclenché immédiatement après que l'utilisateur a effectué des sélections. Sur d'autres éléments, il ne tirera qu'après que l'élément perd la focalisation. Notez également que si vous modifiez la valeur de l'élément d'entrée à l'aide de JavaScript, cet événement ne sera pas déclenché.
Lorsque l'utilisateur fait des sélections de texte dans l'élément, l'événement select
est déclenché. Cet événement a une portée plus limitée et ne s'applique qu'aux éléments <input>
et <textarea>
. Si vous souhaitez récupérer le texte sélectionné, vous devez utiliser un plugin jQuery cross-browser.
Lorsque l'utilisateur essaie de soumettre un formulaire, l'événement submit
est déclenché. Vous ne pouvez attacher les gestionnaires que pour former des éléments. Pour déclencher cet événement, l'utilisateur doit cliquer sur l'élément <button>
, <input type="submit">
ou <input type="image">
. Fait intéressant, les événements JavaScript submit
ne bouillonnent pas dans Internet Explorer. Cependant, ce comportement a été standardisé dans le navigateur depuis JQuery version 1.4.
Modifications dans jQuery 3
Depuis JQuery version 1.8, les méthodes load
, error
et unload
ont été obsolètes. load()
La méthode est intrinsèquement claire. Cette méthode peut signifier des charges Ajax ou des événements load
réellement tirés. De même, la méthode error
peut également être confondue avec la méthode jQuery.error()
. Maintenant dans JQuery 3, ces méthodes ont finalement été supprimées. Vous devez maintenant utiliser la méthode on
pour enregistrer ces auditeurs d'événements.
la pensée finale
Dans cet article, j'ai couvert les différences entre toutes les principales méthodes d'événements jQuery et des événements similaires. Savoir quand utiliser keypress
au lieu de keydown
peut vous aider à éviter les tracas et à gagner un temps précieux. Bien qu'il soit possible de se connecter aux événements DOM en utilisant Pure JavaScript, JQuery a une certaine normalisation des différences de croisement dans l'arrière-plan, selon les navigateurs que votre site Web / application doit prendre en charge, ce qui peut être un avantage.
Pour en savoir plus sur les événements, vous pouvez accéder à la documentation officielle de jQuery. Si vous avez des questions ou des conseils sur l'utilisation d'événements dans jQuery, veuillez laisser un commentaire.
FAQ pour les événements jQuery (FAQ)
Comment empêcher les événements de JQuery de bouillonner?
Dans jQuery, vous pouvez utiliser la méthode event.stopPropagation()
pour empêcher les événements de bouillonner vers le haut de l'arbre Dom. Cette méthode empêche les événements de se propager à l'élément parent. Il convient de noter que cela n'empêche aucun comportement par défaut de se produire; Voici un exemple de la fa?on de l'utiliser:
$(window).resize(function() { var windowWidth = $(window).width(); if (windowWidth < 768) { $("img").attr("src", "image-src-here.jpg"); // 此處更改圖像src。 } });Quelle est la différence entre les méthodes
et .bind()
dans .live()
?
Les méthodes et .bind()
dans .live()
jQuery sont toutes deux utilisées pour attacher un gestionnaire d'événements à un élément. La principale différence entre eux est que .bind()
ne joigne que le gestionnaire à l'élément actuel, tandis que .live()
attache le gestionnaire à l'élément actuel et à tous les éléments qui correspondent au sélecteur à l'avenir. Cependant, il convient de noter que la méthode .live()
a été obsolète depuis JQuery 1.7 et a été supprimée dans jQuery 1.9. Vous devez plut?t utiliser la méthode .on()
.
Comment déclencher un événement par programme dans jQuery?
Vous pouvez utiliser la méthode .trigger()
pour déclencher des événements par programme dans jQuery. Cette méthode vous permet de déclencher manuellement un événement spécifié sur un élément. Voici un exemple:
$(window).resize(function() { var windowWidth = $(window).width(); if (windowWidth < 768) { $("img").attr("src", "image-src-here.jpg"); // 此處更改圖像src。 } });
Quel est le délégué de l'événement en jQuery et pourquoi est-il utile?
La délégation d'événements dans jQuery est une technique dans laquelle vous déléguez le traitement d'un événement à l'élément parent au lieu de lier le gestionnaire d'événements aux éléments individuels. Ceci est particulièrement utile lorsque vous avez un grand nombre d'éléments qui nécessitent un gestionnaire d'événements comme, ou lorsque vous ajoutez dynamiquement des éléments au DOM. Il améliore les performances en réduisant le nombre de gestionnaires d'événements qui doivent être liés.
Comment bloquer le fonctionnement par défaut des événements dans jQuery?
Vous pouvez utiliser la méthode event.preventDefault()
pour bloquer le fonctionnement par défaut des événements dans jQuery. Cette méthode empêche le fonctionnement par défaut de l'événement de se produire. Par exemple, il peut empêcher les liens de suivre les URL.
$(window).scroll(function() { if ($(window).scrollTop() >= 500) { $("#alert").text("您已經(jīng)滾動足夠了!"); // 更新警報框內的文本。 } });
Quelle est la différence entre .click()
et .on('click')
dans jQuery?
La méthode .click()
en jQuery est l'abréviation de .on('click')
. Les deux méthodes joignent le gestionnaire d'événements de clic à l'élément sélectionné. Cependant, la méthode .on()
offre une plus grande flexibilité car elle peut également gérer des événements d'éléments ajoutés dynamiquement et peut gérer plusieurs événements à la fois.
Comment détecter l'événement à double clic à jQuery?
Vous pouvez utiliser la méthode .dblclick()
pour détecter les événements de double clic dans jQuery. Cette méthode attache une fonction qui s'exécute lorsqu'un événement à double clic se produit sur l'élément sélectionné. Voici un exemple:
$(window).unload(function() { alert("請不要離開!"); // 不起作用。 });
Comment lier plusieurs événements aux éléments de jQuery?
Vous pouvez utiliser la méthode .on()
pour lier plusieurs événements aux éléments de jQuery. Cette méthode vous permet de joindre plusieurs gestionnaires d'événements à l'élément sélectionné. Voici un exemple:
$("#alert").keydown(function(event) { switch (event.which) { case 89: // y的鍵碼 $("#element").remove(); // 從DOM中刪除元素 break; } });
Comment introduire le gestionnaire d'événements à jQuery?
Vous pouvez utiliser la méthode .off()
pour dériver le gestionnaire d'événements dans jQuery. Cette méthode supprime le gestionnaire d'événements attaché à l'aide de .on()
. Voici un exemple:
$("body").keypress(function(event) { switch (event.keyCode) { case 75: // 75在keypress事件中代表大寫K $(".K").css("display", "none"); break; } });
Comment détecter l'événement de clic droit à JQuery?
Vous pouvez utiliser la méthode .contextmenu()
ou vérifier la propriété "quelle" de l'objet événement dans l'événement mousedown
pour détecter l'événement à clic droit dans jQuery. La propriété "quelle" sera 3 pour un clic droit. Voici un exemple:
$("img").contextmenu(function(event) { event.preventDefault(); $("#custom-menu") .show().css({ top: event.pageY + 10, left: event.pageX + 10 // 在鼠標點擊附近顯示菜單 }); }); $("#custom-menu #option").click(function() { $("img").toggleClass("class-name"); // 切換圖像類。 });
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Il existe trois fa?ons courantes d'initier des demandes HTTP dans Node.js: utilisez des modules intégrés, Axios et Node-Fetch. 1. Utilisez le module HTTP / HTTPS intégré sans dépendances, ce qui convient aux scénarios de base, mais nécessite un traitement manuel de la couture des données et de la surveillance des erreurs, tels que l'utilisation de https.get () pour obtenir des données ou envoyer des demandes de post via .write (); 2.AXIOS est une bibliothèque tierce basée sur la promesse. Il a une syntaxe concise et des fonctions puissantes, prend en charge l'async / attendre, la conversion JSON automatique, l'intercepteur, etc. Il est recommandé de simplifier les opérations de demande asynchrones; 3.Node-Fetch fournit un style similaire à la récupération du navigateur, basé sur la promesse et la syntaxe simple

Les types de données JavaScript sont divisés en types primitifs et types de référence. Les types primitifs incluent la cha?ne, le nombre, le booléen, le nul, un non défini et le symbole. Les valeurs sont immuables et les copies sont copiées lors de l'attribution des valeurs, de sorte qu'elles ne se affectent pas; Les types de référence tels que les objets, les tableaux et les fonctions stockent les adresses de mémoire, et les variables pointant vers le même objet s'afferchent mutuellement. Le typeof et l'instance de OFF peuvent être utilisés pour déterminer les types, mais prêtent attention aux problèmes historiques de typeofnull. Comprendre ces deux types de différences peut aider à écrire un code plus stable et fiable.

Bonjour, développeurs JavaScript! Bienvenue dans JavaScript News de cette semaine! Cette semaine, nous nous concentrerons sur: le différend de marque d'Oracle avec Deno, les nouveaux objets Time JavaScript sont pris en charge par les navigateurs, les mises à jour Google Chrome et certains outils de développeurs puissants. Commen?ons! Le différend de marque d'Oracle avec la tentative de Deno Oracle d'enregistrer une marque "JavaScript" a provoqué la controverse. Ryan Dahl, le créateur de Node.js et Deno, a déposé une pétition pour annuler la marque, et il pense que JavaScript est un niveau ouvert et ne devrait pas être utilisé par Oracle

Cacheapi est un outil fourni par le navigateur pour mettre en cache les demandes de réseau, qui est souvent utilisée en conjonction avec travailleur de service pour améliorer les performances du site Web et l'expérience hors ligne. 1. Il permet aux développeurs de stocker manuellement des ressources telles que des scripts, des feuilles de style, des photos, etc.; 2. Il peut faire correspondre les réponses du cache en fonction des demandes; 3. Il prend en charge la suppression des caches spécifiques ou la nettoyage du cache entier; 4. Il peut mettre en ?uvre des stratégies de priorité de cache ou de priorité de réseau grace à l'écoute des événements Fetch; 5. Il est souvent utilisé pour le support hors ligne, accélérez la vitesse d'accès répétée, préchargement des ressources clés et du contenu de mise à jour des antécédents; 6. Lorsque vous l'utilisez, vous devez faire attention au contr?le de la version du cache, aux restrictions de stockage et à la différence entre le mécanisme de mise en cache HTTP.

La promesse est le mécanisme central pour gérer les opérations asynchrones en JavaScript. Comprendre les appels de cha?ne, la gestion des erreurs et les combinants est la clé pour ma?triser leurs applications. 1. L'appel de la cha?ne renvoie une nouvelle promesse à travers. Puis () pour réaliser la concaténation des processus asynchrones. Chaque .then () re?oit le résultat précédent et peut renvoyer une valeur ou une promesse; 2. La gestion des erreurs doit utiliser .catch () pour attraper des exceptions pour éviter les défaillances silencieuses, et peut renvoyer la valeur par défaut dans Catch pour continuer le processus; 3. Combinateurs tels que promesse.all () (réussi avec succès uniquement après tout succès), promesse.race () (le premier achèvement est retourné) et promesse.allsetTled () (en attente de toutes les achèvements)

Des méthodes intégrées de la matrice JavaScript telles que .map (), .filter () et .reduce () peuvent simplifier le traitement des données; 1) .map () est utilisé pour convertir les éléments un en un pour générer de nouveaux tableaux; 2) .filter () est utilisé pour filtrer les éléments par condition; 3) .reduce () est utilisé pour agréger les données en tant que valeur unique; Une mauvaise utilisation doit être évitée lorsqu'elle est utilisée, entra?nant des effets secondaires ou des problèmes de performance.

La boucle d'événement de JavaScript gère les opérations asynchrones en coordonnant les piles d'appels, les webapis et les files d'attente de taches. 1. La pile d'appels exécute du code synchrone, et lors de la rencontre de taches asynchrones, il est remis à WebAPI pour le traitement; 2. Une fois que le WebAPI a terminé la tache en arrière-plan, il met le rappel dans la file d'attente correspondante (macro tache ou micro tache); 3. La boucle d'événement vérifie si la pile d'appels est vide. S'il est vide, le rappel est retiré de la file d'attente et poussé dans la pile d'appels pour l'exécution; 4. Micro taches (comme Promise. puis) ??prendre la priorité sur les taches macro (telles que Settimeout); 5. Comprendre la boucle d'événements permet d'éviter de bloquer le thread principal et d'optimiser l'ordre d'exécution du code.

Les bulles d'événements se propagent de l'élément cible vers l'extérieur vers le n?ud d'ancêtre, tandis que la capture d'événements se propage de la couche externe vers l'intérieur vers l'élément cible. 1. événements Bubbles: Après avoir cliqué sur l'élément enfant, l'événement déclenche l'auditeur de l'élément parent vers le haut. Par exemple, après avoir cliqué sur le bouton, il sortira d'abord cliqué sur l'enfant, puis parent. 2. Capture d'événement: définissez le troisième paramètre sur true, afin que l'auditeur soit exécuté dans l'étape de capture, tels que le déclenchement de l'écouteur de capture de l'élément parent avant de cliquer sur le bouton. 3. Les utilisations pratiques incluent la gestion unifiée des événements d'éléments enfants, le prétraitement d'interception et l'optimisation des performances. 4. Le flux d'événements DOM est divisé en trois étapes: capture, cible et bulle, et l'écouteur par défaut est exécuté dans l'étape de la bulle.
