Le contenu de cet article porte sur ce que signifie la pré-interprétation de js ? Une brève analyse de la signification de la pré-interprétation en js a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer, j'espère qu'elle vous sera utile.
J'entends souvent pré-explication, pré-explication, alors qu'est-ce que la pré-explication exactement ? Parlons brièvement aujourd'hui.
La pré-interprétation est aussi ce que nous appelons habituellement la déclaration de variable. Avant que le code js ne soit exécuté dans la portée actuelle, le navigateur déclarera ou définira d'abord toutes les variables et fonctions à l'avance par défaut. être appelé pré-interprétation.
Alors qu'est-ce qu'une déclaration et qu'est-ce qu'une définition ?
Déclaration : Par exemple,
var test
Ensuite, cela indique au navigateur que nous avons déclaré une variable appelée test dans la portée globale
Définition : Par exemple,
.test=2
Attribuer des valeurs aux variables que nous déclarons
Pour celles qui ont des mots-clés var et function, elles sont également différentes dans la pré-interprétation. Ceux avec var ne sont déclarés qu'à l'avance dans la pré-interprétation, tandis que la fonction doit être déclarée et définie dans la pré-interprétation. C'est pourquoi nous avons dit plus haut que "déclarer à l'avance ou définir"
. Par exemple Exemple
var test = 2 var obj = {"name":"代码"} function foo (val) { var test2 = val console.log(test2) }
Le code ci-dessus est pré-interprété lorsqu'il est exécuté de haut en bas dans la portée globale. Tout d'abord, déclarez un test, déclarez un obj, puis déclarez et définissez un foo. Alors, var test2 in foo sera-t-il pré-interprété dans le cadre global ? Bien sûr, cela ne fonctionnera pas. Nous avons également dit ci-dessus que "js est exécuté dans portée actuelle" test2 est dans la portée de foo et ne sera pré-interprété que lorsque foo sera exécuté. Par conséquent, la pré-interprétation ne se produit que dans la portée actuelle, et ce n'est que lorsque la fonction est exécutée qu'elle sera pré-interprétée.
Nous pouvons donc rencontrer des questions comme celle-ci lorsque nous sortons pour des entretiens
console.log(test ) foo(5) var test = 2 console.log(test ) var obj = {"name":"代码"} function foo (val) { var test2 = val console.log(test2) }
Alors, quel est le contenu imprimé ?
console.log(test )//undefined foo(5)//5 var test = 2 console.log(test )//2 var obj = {"name":"代码"} function foo (val) { var test2 = val console.log(test2) }
Parce que test a été déclaré au début mais n'a pas été défini, donc la première console n'était pas définie, mais lorsque la deuxième console est arrivée, 2 avaient été attribués, donc la deuxième console a de la valeur. . Et foo est une fonction lors de la pré-interprétation, elle doit être déclarée et définie, donc foo(5) a une valeur.
Recommandations associées :
Jetez un œil aux compétences JavaScript pre-explanation_javascript
Explication détaillée des commentaires conditionnels dans les astuces JScript_javascript
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!