Les variables définies en dehors de la fonction doivent être des variables globales; Variables définies à l'intérieur de la fonction, si VAR est déclarée, alors la variable est une variable locale. Si VAR n'est pas déclaré, la variable est une variable globale.
1. Variables globales et locales Javascrip var global = "global"; test (); fonction test () {var local = "local"; document.writeln (global); document.writeln (local);} document.writeln (global); document.writeln (local);2. Deux types de cookies
i) Les cookies persistants seront stockés sur le disque dur du client.
ii) Répondre Cookie: il ne sera pas stocké sur le disque dur du client, mais sera placé à la mémoire du processus du navigateur. Lorsque le navigateur est fermé, le cookie de réponse sera détruit.
3. En javascript, une fonction est un objet
4. Dans JavaScript, il n'y a pas de concept de surcharge de méthode (fonction)
5. Objet de fonction
Il existe un objet de fonction dans JavaScript, et toutes les fonctions personnalisées sont de type d'objet de fonction. Tous les paramètres acceptés par l'objet de fonction sont de type de chaîne, le dernier paramètre est le corps de fonction à exécuter, et le paramètre précédent est les paramètres que la fonction doit vraiment accepter.
6. Arguments d'objet implicites
Dans JavaScript, chaque fonction a des arguments d'objet implicites, représentant les paramètres réellement transmis à la fonction. Arguments.Length représente le nombre de paramètres réellement passés.
7. Nom de la fonction.lengle
Chaque objet de fonction a un attribut de longueur, indiquant le nombre de paramètres que la fonction prévoit accepter. Il est différent des arguments des fonctions. Arguments.Length représente le nombre de paramètres réellement acceptés par la fonction.
8. Il existe cinq types de données primitives en javascript
Undefined, null, booléen, numéro et chaîne. (Remarque: en JavaScript, il n'y a pas de type de données de char)
Il n'y a qu'une seule valeur pour le type de données non défini: non défini;
Il n'y a qu'une seule valeur pour le type de données nul: null;
Il existe deux valeurs de type de données booléen: vrai et false;
9. Typeof Operator
Le typeof est un opérateur unaire suivi du nom de la variable. Il est utilisé pour obtenir le type de données de la variable. Ses valeurs de retour sont: Undefined, booléen, nombre, chaîne et objet.
10. Dans JavaScript, si la fonction ne déclare pas la valeur de retour, elle renverra la relation entre undefined11, null et indéfini
Undefined est en fait dérivé de Null. Par exemple:
La relation entre null et indéfini
Javascrip
alerte (undefined == null); // le navigateur renvoie true
11. Conversion de type forcé
Il y a 3 moulages dans JavaScript: booléen (valeur), nombre (valeur), chaîne (valeur).
12. Objet objet
Dans JavaScript, tous les objets sont hérités des objets d'objets.
Objet objet
Javascrip
var objet = nouveau objet (); pour (var v dans objet) {alert (v);}Dans le code ci-dessus, le navigateur n'imprime rien, ce qui ne signifie pas que l'objet objet ne porte aucun attribution. Le code suivant teste si les propriétés de l'objet objet peuvent être énumérées. Si false est renvoyé, cela signifie que les propriétés de l'objet objet ne peuvent pas être énumérées.
Les propriétés dans les objets d'objet ne peuvent pas être énumérés
Javascrip
alert (object.propertyiSenumerable ("prototype"));Si le navigateur apparaît d'une fausse boîte de dialogue, cela signifie que les propriétés de l'objet objet ne peuvent pas être énumérées.
Ensuite, voyons si les propriétés de l'objet Window peuvent être énumérées.
Les propriétés dans les objets de fenêtre sont énumérables
Javascrip
pour (var v dans la fenêtre) {console.log (v);}Dans Chrome, nous verrons de nombreuses propriétés imprimées dans la console de débogage du navigateur, indiquant que les propriétés de l'objet Window peuvent être énumérées.
13. Dans JavaScript, vous pouvez ajouter dynamiquement les attributs d'un objet ou supprimer dynamiquement les attributs d'un objet.
Ajouter / supprimer dynamiquement les propriétés des objets
Javascrip
var object = new object (); alert (object.userName); // undefined object.username = "zhangsan"; alert (object.userName); // zhangsan objet ["mot de passe"] = "123"; alert (objet.password); // 123 delete object.userName; // undefined object.UserName = "zhangsan";
14. Le moyen le plus courant de définir des objets en javascript
La façon la plus courante de définir les objets
Javascrip
var objet = {nom d'utilisateur: "Zhangsan", mot de passe: 12345}; alert (object.userName); alert (object.password);15. Array
Définition du tableau
Javascrip
// Méthode 1 Var Array = new Array (); array.push (1); array.push (2); array.push (3); alert (array.length); // Méthode 2 (recommandée) Var Array = [1,25,4]; array.sort (); alert (array);
Appelez la méthode SORT () du tableau et le navigateur imprime 1, 25, 4, ce qui n'est pas le résultat que nous attendons.
Pour la méthode de tri du tableau JavaScript, il convertira d'abord le contenu à être trié en une chaîne (appelée méthode toString ()) et le triera dans l'ordre des chaînes.
La méthode suivante peut obtenir les résultats que nous attendons (triés par taille du tableau):
Tri des tableaux
Javascrip
fonction compare (num1, num2) {var temp1 = parseInt (num1); var temp2 = parseInt (num2); if (temp1 <temp2) {return -1; } else if (temp1 == temp2) {return 0; } else {return 1; }} var array = [1,25,3]; array.sort (comparer); alert (array);Nous l'implémentons ensuite dans des fonctions anonymes:
Tri anonyme de fonction
Javascrip
Var Array = [1,25,3]; array.sort (fonction (num1, num2) {var temp1 = paSeInt (num1); var temp2 = paSeInt (num2); if (temp1 <temp2) {return -1;} else if (temp1 == temp2) {return 0;} else {return 1;}}); alerte (tableau);16. Cinq façons de définir des objets en JavaScript (il n'y a pas de concept de classes en javascrip
Élargir ses propriétés et ses méthodes en fonction des objets existants
Javascrip
var object = new object (); // ajouter name attribut object.name = "zhangsan"; // ajouter la méthode sayName object.sayName = function (name) {this.name = name; alert (this.name);}; object.sayName ("kyle"); // appelle la méthode SayName, l'attribut de nom est modifié à Kyle et le navigateur imprimera KyleLe moyen le plus simple n'est pas pratique à utiliser et convient pour nécessiter temporairement un objet.
ii) Créer des objets en usine
Méthode d'usine sans paramètres:
Javascrip
// Fonction d'usine CreateObject () {var objet = new object (); // créer un objet objet.name = "Zhangsan"; // Ajouter un nom d'attribut.Password = "123"; // Ajouter un Attribut Mot de passe Object.get = function () {// Ajouter une alerte de méthode GET (this.name + "," + this.Password); }; Return Object; // return cet objet} var objet1 = createObject (); // Calendar a createObject Factory Method to Create Object1var Object2 = CreateObject (); // Appelez CreateObject Factory Method to Create Object Object2Object1.get (); // Appelez l'objet Get Method Object2.get (); // Cellule l'objet Get Method Object2.get ();Méthode d'usine avec paramètres:
Javascrip
fonction createObject (name, mot de passe) {var objet = new object (); object.name = name; object.password = mot de passe; object.get = function () {alert (this.name + "," + this.password); }; return objet;} var objet1 = createObject ("zhangsan", "123"); var object2 = createObject ("lisi", "456"); object1.get (); object2.get ();Inconvénients des deux méthodes d'usine ci-dessus sans paramètres et avec paramètres:
Chaque fois qu'un objet est créé, une méthode GET est créée en mémoire, qui est un gaspillage de mémoire et affecte les performances. Et notre attente est de créer deux objets différents dont les propriétés sont différentes, mais les méthodes sont partagées. Nous devons donc ensuite améliorer la méthode CreateObject Factory.
Amélioration de l'approche d'usine:
Javascrip
function get () {alert (this.name + "," + this.password);} function createObject (name, mot de passe) {var objet = new object (); object.name = name; object.password = mot de passe; object.get = get; return objet;} var objet1 = createObject ("zhangsan", "123"); var object2 = createObject ("lisi", "456"); object1.get (); object2.get ();Définissez la méthode GET en dehors de la fonction CreateObject, afin que la méthode GET soit partagée pour chaque objet créé. Faites un objet de fonction partager par plusieurs objets, au lieu de chaque objet ayant un objet de fonction.
iii) Méthode du constructeur pour créer un objet
Constructeur sans paramètres:
Javascrip
function Person () {// Avant d'exécuter la première ligne de code, le moteur JS générera un objet pour nous ce.name = "Zhangsan"; this.password = "123"; this.getInfo = function () {alert (this.name + "," + this.password); }; // Il existe une instruction de retour implicite ici pour renvoyer l'objet précédemment généré (qui est également un endroit différent de la méthode d'usine)} var p1 = new Person (); p1.getInfo ();Constructeur avec paramètres
Javascrip
Personne de fonction (nom, mot de passe) {this.name = name; this.password = mot de passe; this.getInfo = function () {alert (this.name + "," + this.password); };} var p1 = new personne ("zhangsan", "123"); var p2 = new personne ("lisi", "456"); p1.getInfo (); p2.getInfo ();iv) Prototype (prototype) Création d'objets
Le prototype est une propriété dans l'objet objet
prototype
Javascrip
fonction personne () {} personne.prototype.name = "zhangsan"; personne.prototype.password = "123"; personne.prototype.getInfo = function () {alert (this.name + "," + this.password);}; var p1 = new personne (); var p2 = new personne (); p1.name = "kyle"; // Une fois l'objet généré, modifiez l'attribut p1.getInfo (); p2.getInfo ();Il y a deux problèmes avec simplement l'utilisation de prototypes: d'abord, vous ne pouvez pas affecter des valeurs initiales aux attributs dans le constructeur, et vous ne pouvez modifier les valeurs d'attribut qu'après générer l'objet.
prototype
Javascrip
fonction personne () {} personne.prototype.name = new Array (); personne.prototype.password = "123"; personne.prototype.getInfo = function () {alert (this.name + "," + this.password);}; var p1 = new personne (); var p2 = new personne (); p1.name.push ("zhangsan"); p1.name.push ("lisi"); p1.password = "456"; p1.getinfo (); p2.GetInfo ()Le navigateur imprimera: Zhangsan, Lisi, 456 et Zhangsan, Lisi, 123.
Si un objet est créé à l'aide de la méthode du prototype, tous les objets générés partageront les propriétés dans le prototype, et si un objet modifie la propriété, il se reflétera également dans d'autres objets. Par conséquent, il n'est pas possible d'utiliser simplement la méthode du prototype, et il doit également être combiné avec d'autres méthodes. Nous continuerons à le présenter ensuite.
Utilisez le prototype + constructeur pour définir des objets
Javascrip
fonction personne () {this.name = new Array (); this.password = "123";} personne.prototype.getInfo = function () {alert (this.name + "," + this.password);}; var p1 = new personne (); var p2 = new personne (); p1.name.push ("zhangsan"); p2.Name.push ("lisi"); p1.getInfo (); p2.GetInfo ();Utilisez la méthode Prototype + Constructor pour définir des objets. Les propriétés entre les objets n'interfèrent pas entre elles et chaque objet partage la même méthode. C'est une meilleure façon.
v) Méthode de prototype dynamique
Javascrip
fonction personne () {this.name = "zhangsan"; this.password = "123"; if (typeof personne.flag == "Undefined") {alert ("invoqué"); Personne.prototype.getInfo = function () {alert (this.name + "," + this.password); } Personne.flag = true; }} var p1 = new personne (); var p2 = new personne (); p1.getInfo (); p2.getInfo ();Dans la méthode du prototype dynamique, dans le constructeur, tous les objets partagent une méthode à travers des quantités de drapeau, et chaque objet a ses propres attributs. Lorsque le code ci-dessus crée un objet pour la première fois, il utilise d'abord une instruction de jugement pour voir si l'attribut de drapeau a été défini. S'il n'est pas défini, ajoutez la méthode getInfo via le prototype, puis définissez le drapeau sur true. Ensuite, lorsque l'objet est créé la deuxième fois, l'instruction IF est jugée fausse et exécutée est ignorée. Cela atteint le résultat souhaité, les propriétés d'objet créées ne s'interfèrent pas les unes avec les autres et les méthodes d'objet sont partagées.
17. Héritage des objets en JavaScript (5 façons)
La première méthode: imitation d'objet
Imiter l'héritage des objets
Javascrip
// Fonction de classe présidente parent (nom d'utilisateur) {this.username = username; this.sayhello = function () {alert (this.UserName); };} // Fonction de sous-classe enfant (nom d'utilisateur, mot de passe) {// Les trois lignes de code suivantes sont les plus critiques this.Method = parent; this.Method (nom d'utilisateur); Supprimer ce.method; this.password = mot de passe; this.sayworld = function () {alert (this.password); };} var p = nouveau parent ("zhangsan"); var c = new Child ("Lisi", "123"); p.sayhello (); c.sayhello (); c.sayworld ()La deuxième méthode: call ()
La deuxième méthode d'implémentation d'hérédité, la méthode d'appel, la méthode d'appel est une méthode définie dans l'objet de fonction, donc chaque fonction que nous définissons a cette méthode. Le premier paramètre de la méthode d'appel sera transmis à cela dans la fonction, à partir du deuxième paramètre, et attribué aux paramètres de la fonction un par un.
L'appel hérite de la classe parent
Javascrip
fonction test (str) {alert (this.name + "," + str);} var objet = new object (); object.name = "zhangsan"; // test.call est équivalent à appeler la fonction de test test.call (objet, "html5war"); // attribuez un objet à ceciEnsuite, nous utilisons la méthode d'appel pour implémenter l'héritage des objets
Javascrip
// Fonction de classe présidente parent (nom d'utilisateur) {this.username = username; this.sayhello = function () {alert (this.UserName); };} // Fonction de sous-classe enfant (nom d'utilisateur, mot de passe) {parent.call (this, nom d'utilisateur); this.password = mot de passe; this.sayworld = function () {alert (this.password); };} var p = nouveau parent ("zhangsan"); var c = new Child ("Lisi", "123"); p.sayhello (); c.sayhello (); c.sayworld ();La troisième méthode: appliquer ()
Appliquer Hérite de la classe parentale
Javascrip
// Fonction de classe présidente parent (nom d'utilisateur) {this.username = username; this.sayhello = function () {alert (this.UserName); };} // Fonction de sous-classe enfant (nom d'utilisateur, mot de passe) {parent.Apply (this, new Array (username)); this.password = mot de passe; this.sayworld = function () {alert (this.password); };} var p = nouveau parent ("zhangsan"); var c = new Child ("Lisi", "123"); p.sayhello (); c.sayhello (); c.sayworld ();La méthode d'application est très similaire à la méthode d'appel. La méthode d'application est également une méthode définie dans un objet de fonction, donc chaque fonction que nous définissons a cette méthode.
Il existe une différence entre la méthode d'application et la méthode d'appel: Parent.Apply (this, nouveau tableau (nom d'utilisateur)); Le deuxième paramètre passé est un tableau, tandis que la méthode d'appel a passé certains paramètres de données discrètes. Ces deux méthodes ne peuvent pas être considérées comme bonnes et mauvaises, cela dépend du scénario d'utilisation spécifique.
La quatrième méthode: méthode de la chaîne prototype (ne peut pas transmettre des paramètres au constructeur)
Héritage de la chaîne prototype
Javascrip
fonction parent () {} parent.prototype.hello = "Bonjour"; parent.prototype.sayhello = function () {alert (this.hello);}; fonction child () {} child.prototype = new Parent (); Child.prototype.world = "world"; Child.prototype.sayworld = function () {alert (this.world);}; var c = new child (); C.Sayhello (); c.sayworld ();Inconvénients de simplement utiliser la méthode de la chaîne prototype: il n'y a aucun moyen de passer des paramètres, vous ne pouvez qu'attendre que l'objet soit créé avant de le modifier. Résolvons ce problème en combinaison avec d'autres manières.
La cinquième méthode: méthode mixte (recommandée)
Utiliser des méthodes hybrides pour implémenter l'héritage des objets
Javascrip
fonction parent (bonjour) {this.hello = bonjour;} parent.prototype.sayhello = function () {alert (this.hello);} function child (hello, world) {parent.call (this, hello); this.world = world;} child.prototype = new Parent (); child.prototype.sayworld = function () {alert (this.world);} var c = new Child ("hello", "world"); c.sayhello (); c.sayworld ();Le résumé ci-dessus des points de connaissance JavaScript de base (recommandés) 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.