Maison >interface Web >js tutoriel >Que signifie la pré-interprétation de js ? Une brève analyse de la signification de la pré-interprétation en js

Que signifie la pré-interprétation de js ? Une brève analyse de la signification de la pré-interprétation en js

不言
不言original
2018-08-22 17:59:501680parcourir

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!

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

Articles Liés

Voir plus