0-juge si les variables et les paramètres sont initialisés
if (x) {} // La variable est initialisée ou la variable n'est pas vide ou la variable n'est pas zéroLa fonction 1-Déclaration ne nécessite pas de déclaration de valeur de retour ou de type de paramètre, et la fin de la phrase ne nécessite même pas ';'
Sum de fonction (i1, i2) {return i1 + i2}Déclarer 2 directement les fonctions anonymes à utiliser immédiatement
var f = fonction (i1, i2) {return i1 + i2;}; alert (f (1,2)); // fonction anonyme ordinaire alerte (fonction (i1, i2) {return i1 + i2;} (3,4)); // déclare directement, utilisez immédiatement3-JS n'a pas de concept de classe, donc certaines méthodes ressemblent à des classes
Personne de fonction (nom, âge) {this.name = name; // ajouter dynamiquement des attributs, similaires à dynamique a en c #. A = new ExpenStoObject (); this.age = âge; this.sayhello = function () {alert ('bonjour, mon nom est' + name + 'je suis' + âge + 'ans.')};} var p1 = new personne ('Lorry', 21); p1.sayhello (); // appelle p1.gender = 'mâle' comme une classe; // Ajouter dynamiquement l'alerte d'attribut «genre» (p1.gender);Les objets 4-array sont des baies et vous n'avez pas besoin de pré-qualifier la longueur du tableau.
var arr = new Array (); arr [0] = 0; arr [1] = 1; arr [2] = 2; pour (var i = 0; i <= arr.length-1; i ++) {alert (arr [i]);}Le 5 array est un tableau, également un dictionnaire, et aussi une pile
var dict = new Array (); // comme dictionnaire, utilisez dict ['i'] = 'wo'; dict ['love'] = 'ai'; dict ['you'] = 'ni'; alert (dict ['i']); // Appeler alerte (dict.love); // Appel comme des attributs d'appel (caractéristiques du langage dynamique) pour (var k en dict) {// alerte de voyage (k); // 'i', 'love', 'vous' -> imprimer la clé} pour (var k de dict) {// Alert de voyage (k); // 'wo', 'ai', 'ni' -> imprimer la valeur} var arr = [1,2,3,4,5]; // méthode de création simplifiée du tableau var arr = {"lorry": 21, "cloud": 20}; // méthode de création de style dictionnaire de la création de style dictionnaire6 transfert tous les éléments qui peuvent être appelés sur la page actuelle
var s = null; pour (var k dans le document) {// Les propriétés de l'objet sont s + = k + ";";} alert (s);7 Utiliser des opérations d'indice similaires au tableau pour obtenir des caractères à une position spécifiée de la chaîne
var s = 'Bonjour, monde!'; S [0]; // 'H's [6]; // '' s [12]; // '!' S [13]; // Les index non définis à l'extérieur de la plage ne signaleront pas une erreur, mais ils retourneront toujours indéfinis. Il convient de noter que la chaîne est immuable. Si vous attribuez une valeur à un certain index de la chaîne, il n'y aura pas d'erreurs, mais il n'y a aucun effet: var s = 'test'; s [0] = 'x'; alert (s); // s est toujours «test»
Minuscules à 8 capsules
var s = 'hello'; s.touppercase (); // renvoie «bonjour» var s = 'hello'; s.tolowercase (); // retourne 'bonjour'
9-recherche pour l'emplacement où la chaîne spécifiée apparaît
var s = 'Hello, World'; S.Indexof ('World'); // Retour 7.Indexof ('World'); // Aucune sous-chaîne spécifiée n'a été trouvée, retour -1Les sous-chaînes de 10 objets d'intervalle d'index spécifié de chaîne
var s = 'Hello, World's.substring (0, 5); // Commencez de l'index 0 à 5 (à l'exclusion 5), renvoyez 'Hello's.Substring (7); // commence de l'index 7 à la fin, renvoyez «monde»
L'objet 11-javascript est un type de données de collecte non ordonné, qui se compose de plusieurs paires de valeurs clés.
var XiaoMing = {Name: 'XiaoMing', Naissance: 1990, école: 'No.1 Middle School', hauteur: 1,70, poids: 65, score: null // La dernière paire de valeurs clés n'a pas besoin d'être ajoutée ','}; xiaoMing.name; // 'XiaoMing'xiaoMing.birth; // 1990 L'accès à l'attribut se fait via le. Opérateur, mais cela nécessite que le nom d'attribut doit être un nom de variable valide. Si le nom d'attribut contient des caractères spéciaux, il doit être enfermé avec []: var xiaohong = {name: 'xiaohong', 'Middle-School': 'n ° 1 Middle School'}; xiaohong ['Middle-School']; // 'n ° 1 Middle School'xiaohong [' nom ']; // 'xiaohong'xiaohong.name; // 'xiaohong'xiaohong.age; // indéfini12 pour détecter si XiaoMing a un certain attribut, utilisez l'opérateur in:
«nom» dans xiaoMing; // true'grade »dans xiaoMing; // false *** Si en détermine qu'il existe une propriété, cette propriété peut ne pas être xiaoMing, elle peut être héritée par XiaoMing:« Tostring »dans xiaoMing; // true *** Pour déterminer si une propriété appartient à XiaoMing elle-même, et non héritée, vous pouvez utiliser HasownProperty () Méthode: XiaoMing.HasownProperty ('name'); // trueXiaoMing.hasownproperty («toString»); // FAUX13 map
var m = new map ([['Michael', 95], ['Bob', 75], ['Tracy', 85]]); // 2d Méthode d'initialisation du tableau M.get ('Michael'); // 95 var m = new Map (); // Initialise directement une carte vide ('Adam', 67); // Ajouter un nouveau Key-Valuem.set ('Bob', 59); M.Has ('Adam'); // si clé «Adam»: truem.get («Adam»); // 67m.Delete ('Adam'); // supprimer la clé 'Adam'm.get (' Adam '); // non défini var m = new map ([[1, 'x'], [2, 'y'], [3, 'z']]); pour (var n de m) {// Traverse map alert (n [1] + '=' + n [0]);}La méthode FOREEAC intégrée 14-itérable, qui reçoit une fonction et rappelle automatiquement chaque itération.
var a = ['a', 'b', 'c']; a.ForEach (fonction (élément, index, array) {// élément: pointez la valeur de l'élément actuel // index: pointez vers l'index actuel // array: pointez vers l'objet Array lui-même alert (élément);}); Le set est similaire à la table, mais SET n'a pas d'index, donc la fonction de rappel a un maximum de deux paramètres: var s = new Set (['A', 'B', 'C']); s.ForEach (fonction (élément, set) {alert (élément);}); Les paramètres de fonction de rappel de MAP sont la valeur, la clé et la carte elle-même: var m = new Map ([[1, 'x'], [2, 'y'], [3, 'z']]); M.ForEach (fonction (valeur, key, map) {alert (valeur);}); var a = ['a', 'b', 'c']; a.ForEach (fonction (élément) {alert (élément);});Méthode MAP () de 15 user Array, passez dans notre propre fonction, et vous obtenez un nouveau tableau en conséquence:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map (fonction (x) {return x * x;}). foreach (fonction (élément) {alert (élément); // [1, 4, 9, 16, 25, 36, 49, 64, 81]});16 user map () Pour convertir tous les nombres en tableau en chaînes:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map (chaîne); // ['1', '2', '3', '4', '5', '6', '7', '8', '9']
17 Utiliser la réduction () pour effectuer des calculs cumulatifs
var arr = []; pour (var x = 1; x <= 100; x ++) {arr.push (x); // mettez 1 ~ 100 dans un tableau} alerte (arr.reduce (fonction (x, y) {return x + y; // somme cumulative de tous les objets de l'ARR, renvoie le résultat de somme}));18-utiliser réduction () pour faire une conversion impressionnante: convertir [1, 2, 5, 8, 0] en entier 12580
var arr = [1, 2, 5, 8, 0]; alert (arr.reduce (fonction (x, y) {return x * 10 + y;}));19-usage Filter () pour filtrer certains éléments du tableau
var arr = [0,1,2,3,4,5,6,7,8,9]; alert (arr.filter (fonction (x) {return x% 2 === 0;})); // 0,2,4,6,8 // return true, continuez la suppression de la chaîne vide dans un array ']; alert (arr.filter (fonction (s) {return s && s.trim (); // Remarque: il n'y a pas de méthode TRIM () dans les versions ci-dessous ie9})); // ['a', 'b', 'c']La méthode SORT () de 20 arrays convertit tous les éléments en chaîne d'abord, puis la trie, donc ...
[10, 20, 1, 2] .Sort (); // [1, 10, 2, 20] Donc, si vous souhaitez trier par taille de nombre, vous pouvez écrire ceci: var arrR = []; for (var x = 1; x <= 10; x ++) {arr.push (x);} document.write (arr + "<br/>"); document.write (arr.sort (function (x, y) {return x <y? True: false;}); Pour ignorer l'influence des lettres, vous devez d'abord vous convertir en majuscules ou en minuscules var arrr = ['Google', 'Apple', 'Microsoft']; alert (arr.sort (fonction (S1, S2) {var x1 = s1.toupperase (); var x2 = s2.toupperase (); return x1 <x2? False: true;})); // ['Apple', 'Google', 'Microsoft']Structure du programme de 21 clôtures
① Attribuez la fonction comme la valeur de retour au paramètre, appelez le paramètre pour obtenir le résultat de calcul var arr = []; pour (var n = 1; n <101; n ++) {arr.push (n);} fonction lazy_sum (arr) {var sum = function () {return arr.reduce (function (x, y) {return x + y;}); } return sum;} var f = lazy_sum (arr); alert (f ()); ② La fonction renvoyée n'est pas exécutée immédiatement, mais ne s'exécute pas tant que f () est appelé la fonction count () {var arr = []; for (var i = 1; i <= 3; i ++) {arr.push (function () {return i * i;}); } return arr;} var résultats = count (); // il y a 3 fonctionsvar f1 = résultats [0]; var f2 = résultats [1]; var f3 = résultats [2]; F1 (); // 16 La fonction retournée fait référence à la variable I, mais elle n'est pas exécutée immédiatement. f2 (); // 16 Lorsque les trois fonctions reviennent, la variable que j'ai référencée est devenue 4, f3 (); // 16 Par conséquent, le résultat final est 16 *** lors du retour de la fermeture, n'oubliez pas: ne vous référez pas à aucune variable de boucle ou variables qui changera à l'avenir! ③Quelle si vous devez vous référer aux variables de boucle? La méthode consiste à créer une autre fonction et à utiliser les paramètres de la fonction pour lier la valeur actuelle de la variable de boucle. Quelle que soit la façon dont la variable de boucle change dans le temps ultérieur, la valeur liée au paramètre de fonction reste inchangée: le nombre de fonctions () {var arr = []; pour (var i = 1; i <= 3; i ++) {arr.push (fonction (n) {return function () {return n * n;}} (i)); } return arr;} var résultats = count (); var f1 = résultats [0]; var f2 = résultats [1]; var f3 = résultats [2]; alerte (f1 ()); // 1Alert (f2 ()); // 4Alert (f3 ()); // 9 ④ Dans les langues sans mécanisme de classe et seule fonction, à l'aide de fermetures, une variable privée peut être une fonction encapsulée cré Creat_Counter (init) {var n = init || 0; return {add: function () {n + = 1; retour n; }}} var c = create_counter (); alert (c.add ()); // 1Alert (c.add ()); // 2Alert (c.add ()); // 3 *** dans l'objet retourné, une fermeture est implémentée, qui transporte le norable norable n, et la variable n ne peut pas être accessible à partir du code externe du tout. En d'autres termes, une fermeture est une fonction qui porte des États, et son état peut être complètement caché de l'extérieur. ⑤ Utilisez math.pow (x, y) pour calculer x ^ 2 ou x ^ 3 //math.pow(x, y) -> x ^ yfunction make_pow (y) {return function (x) {return math.pow (x, y); }} var pow2 = make_pow (2) var pow3 = make_pow (3) alert (pow2 (3)) // 9Alert (pow3 (3)) // 27Fonction 22-IROW (actuellement soutenue uniquement par Firefox) // Paramètres => Body Function
var f = x => x * xxxAlert (f (3)) // 27
23-générateur pour générer des séquences de fibonacci
fonction * fib (max) {var t, a = 0, b = 1, n = 1; tandis que (n <= max) {rendement a; t = a + b; a = b; b = t; n ++; } return a;} pour (var x de fib (10)) {// itérate le objet générateur document.write (x + ''); // Sortie 0, 1, 1, 2, 3} Utilisez un générateur pour générer une fonction ID auto-incrémentale (aucune variable globale requise) * next_id () {for (var x = 1; x <100; rendement x ++);} var g = next_id (); alert (g.next (). valeur); // 1Alert (g.next (). valeur); // 2Alert (g.next (). valeur); // 3Ce qui précède est le contenu complet des notes d'auto-étude JavaScript (Article à lire) que l'éditeur vous a été apportée. J'espère que tout le monde soutiendra Wulin.com plus ~