Pendant le processus d'apprentissage, les endroits où vous avez été avalé dans le passé apparaîtra toujours encore et encore. Ce qui suit enregistrera les points de connaissance que vous avez appris aujourd'hui pour une visualisation facile.
Types de données en JavaScript
Types de données simples (de base): numéro, chaîne, booléen, indéfini, nul
Types de données complexes (référence): objet, tableau, date, fonction, etc.
Ce qui suit est une description de la différence entre les types de données simples (de base) et les types de données complexes (cités):
Type de données simple: stocker directement les valeurs dans la pile, comme indiqué sur la figure ci-dessous
Type de données complexe: stocker les références dans la pile, comme indiqué dans la figure ci-dessous
Après avoir compris les méthodes de stockage des deux types de données ci-dessus, vous pouvez distinguer les différences entre les deux. Vous pouvez faire les exercices suivants:
var a = 10; var b = a; // Question: Lors de la modification de la valeur de A, la valeur de B change-t-elle a = 20; console.log (b); // 10
var s1 = nouvel objet (); var s2 = s1; // q: Après avoir modifié l'attribut de S1, le même attribut de S2 changera s1.name = "MH"; console.log (s2.Name); // MH
fonction f2 (arr) {arr = [9,8,7,6,5]; // générer un nouvel objet arr [0] = - 100; } var array = [1,2,4,7,5]; F2 (tableau); console.log (array [0]); // 1Promotion variable, déclaration de fonction et portée variable en JavaScript
Tout d'abord, examinons les questions d'entrevue suivantes:
var num = 10; amusant(); fonction fun () {console.log (num); var num = 20; }Avant d'apprendre, je répondrai directement 10. Maintenant, apprenant le concept précompilé en JavaScript, je connais le concept d'amélioration du mot-clé VAR et du concept de déclaration de fonction. Je sais que le code ci-dessus est équivalent au code suivant:
var num; // scope globale rencontre var et fonction d'amélioration de la fonction fun () {var num; // Utilisateur local Rencontres var console.log (num); num = 20; } num = 10; amusant();Examinons la question suivante:
// Question: Pourquoi l'erreur suivante apparaît-elle? // non apparié TypeError: fnname n'est pas une console de fonction.log (fnname (1,2)); var fnname = fonction (a, b) {return a + b; }Le code ci-dessus est équivalent au code suivant:
var fnname; console.log (fnname (1,2)); fnname = fonction (a, b) {return a + b; }Vous pouvez voir que parce que la fonction est sur le côté droit du signe égal, seul le VAR sera augmenté, et une erreur de "non apparente: FNNAME n'est pas une fonction" sera rapportée.
Pour comprendre la portée des variables, vous pouvez voir le code suivant:
F1 (); console.log (c); console.log (b); console.log (a); fonction f1 () {var a = b = c = 20; console.log (c); console.log (b); console.log (a); }Pour var a = b = c = 20;, une telle affectation continue, seul A sera déclaré dans la portée locale, tandis que les lunettes de B et C sont des lunettes globales. Par conséquent, seul A dans la portée globale rapporte une erreur comme "UNCAVER Referenceerror: A n'est pas défini".
L'essai JS de base ci-dessus (un article incontournable pour les recrues) est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.