312 votes

Fonctions cachées de JavaScript ?

Quelles Fonctionnalités Cachées de JavaScript pensez-vous chaque programmeur devrait savoir?

Après avoir vu l'excellente qualité des réponses aux questions suivantes, j'ai pensé qu'il était temps de lui demander pour le JavaScript.

Même si JavaScript est sans doute le plus important Client du Côté de la langue en ce moment (il suffit de demander à Google), il est surprenant de constater combien peu de la plupart des développeurs web apprécier comment puissant il est vraiment.

373voto

Mark Cidade Points 53945

Vous n’avez pas besoin de définir tous les paramètres d’une fonction. Vous pouvez utiliser la fonction `` objet de type tableau.

204voto

Martin Clarke Points 3370

Je pourrais citer la majeure partie de l’excellent livre de Crockford JavaScript : The Good Parts.

Mais je vais prendre juste un pour vous, toujours utiliser et au lieu de et

n’est pas transitif. Si vous utilisez il donnerait de faux pour l’ensemble de ces déclarations comme prévu.

189voto

Gulzar Nazim Points 35342

Les fonctions sont des citoyens à part entière en JavaScript:

var passFunAndApply = function (fn,x,y,z) { return fn(x,y,z); };

var sum = function(x,y,z) {
  return x+y+z;
};

alert( passFunAndApply(sum,3,4,5) ); // 12

La programmation fonctionnelle, les techniques peuvent être utilisées pour écrire élégant javascript.

En particulier, les fonctions peuvent être passés comme paramètres, par exemple la Matrice.filtre() accepte un rappel:

[1, 2, -1].filter(function(element, index, array) { return element > 0 });
// -> [1,2]

Vous pouvez également déclarer un "privé" de la fonction qui n'existe que dans le cadre d'une fonction spécifique:

function PrintName() {
    var privateFunction = function() { return "Steve"; };
    return privateFunction();
}

162voto

Mark Cidade Points 53945

Vous pouvez utiliser l’opérateur in pour vérifier si une clé existe dans un objet :

Si vous trouvez les littéraux d’objet trop laid vous pouvez le combiner avec la pointe d’une fonction sans paramètre :

153voto

CMS Points 315406

L'attribution des valeurs par défaut pour les variables

Vous pouvez utiliser l'opérateur logique ou || dans une expression d'affectation pour fournir une valeur par défaut:

var a = b || c;

L' a variable obtenez la valeur de c seulement si l' b est falsy (si est - null, false, undefined, 0, empty stringou NaN), sinon, a obtenez la valeur de b.

C'est souvent utile dans les fonctions, lorsque vous voulez donner une valeur par défaut à un argument dans le cas où n'est pas fournie:

function example(arg1) {
  arg1 || (arg1 = 'default value');
}

Exemple IE secours dans les gestionnaires d'événements:

function onClick(e) {
    e || (e = window.event);
}

Les fonctionnalités de langage suivantes ont été avec nous pendant une longue période, toutes les implémentations JavaScript soutenir, mais ils ne faisaient pas partie de la spécification jusqu'à ECMAScript 5ème Édition:

L' debugger déclaration

Décrites dans: § 12.15 Le débogueur déclaration

Cette instruction permet de mettre des points d'arrêt par programme dans votre code par:

// ...
debugger;
// ...

Si un débogueur est présent ou actif, il sera la cause de la rupture immédiatement, à droite sur la ligne.

Sinon, si le débogueur n'est pas présent ou actif cette déclaration n'a pas d'effet observable.

Multiline littéraux de Chaîne

Décrites dans: § 7.8.4 Littéraux de Chaîne

var str = "This is a \
really, really \
long line!";

Vous devez être prudent, parce que le personnage à côté de l' \ doit être un terminateur de ligne, si vous avez un espace après l' \ par exemple, le code va chercher exactement le même, mais il va soulever un SyntaxError.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X