Maison > interface Web > js tutoriel > le corps du texte

Résumé des astuces Javascript courantes_astuces Javascript

WBOY
Libérer: 2016-05-16 15:53:03
original
1038 Les gens l'ont consulté

Les exemples de cet article décrivent des astuces Javascript courantes. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

1. Expressions booléennes vraies et fausses

Les expressions booléennes suivantes renvoient toutes false :

nul
indéfini
''chaîne vide
0 numéro 0

Mais soyez prudent avec ce qui suit, ils renvoient tous vrai :

'0' chaîne 0
[] Tableau vide
{} objet vide

Le morceau de code terrible suivant :

Copier le code Le code est le suivant :
while (x != null) {

Vous pouvez l'écrire directement sous la forme suivante (tant que vous voulez que x soit autre que 0 et une chaîne vide, et faux) :

Copier le code Le code est le suivant :
tandis que (x) {

Si vous souhaitez vérifier si une chaîne est nulle ou vide :

Copier le code Le code est le suivant :
if (y != null && y != '') {

Mais ce serait mieux :

Copier le code Le code est le suivant :
si (y) {

Remarque : Il y a encore beaucoup de choses auxquelles il faut faire attention, telles que :

Booléen('0') == vrai
'0' != vrai
0 != nul
0 == []
0 == faux
Booléen(null) ==faux
nul != vrai
nul != faux
Booléen (non défini) == faux
indéfini != vrai
indéfini != faux
Booléen([]) == vrai
[] != vrai
[] == faux
Booléen({}) == vrai
{} != vrai
{} != faux

2. Opérateur conditionnel (ternaire) (?:)

L'opérateur ternaire est utilisé pour remplacer le code suivant :

if (val != 0) {
 return foo();
} else {
 return bar();
}

Copier après la connexion

Vous pouvez écrire :

Copier le code Le code est le suivant :
return val foo() : bar();

Également utile lors de la génération de code HTML :
Copier le code Le code est le suivant :
var html = '';

Trois, && et ||

Les opérateurs booléens binaires peuvent être court-circuités et le dernier élément ne sera évalué que lorsque cela est nécessaire.

"||" est appelé l'opérateur « par défaut » car il fonctionne comme ceci :

function foo(opt_win) {
 var win;
 if (opt_win) {
  win = opt_win;
 } else {
  win = window;
 }
 // ...
}

Copier après la connexion

Vous pouvez utiliser ceci pour simplifier le code ci-dessus :

function foo(opt_win) {
 var win = opt_win || window;
 // ...
}
Copier après la connexion

"&&" peut également être un code court. Par exemple :

if (node) {
 if (node.kids) {
  if (node.kids[index]) {
   foo(node.kids[index]);
  }
 }
}

Copier après la connexion

Vous pouvez l'utiliser comme ceci :

if (node && node.kids && node.kids[index]) {
 foo(node.kids[index]);
}

Copier après la connexion

ou :

var kid = node && node.kids && node.kids[index];
if (kid) {
 foo(kid);
}

Copier après la connexion

Mais c'est un peu trop :

Copier le code Le code est le suivant :
node && node.kids && node.kids[index] && foo( node.kids [index]);


4. Utilisez join() pour créer une chaîne

est généralement utilisé comme ceci :

function listHtml(items) {
 var html = '';
 for (var i = 0; i < items.length; ++i) {
 if(i > 0) { html += ', ';
 }
 html += itemHtml(items[i]);
 }
 html +='';
 return html;
}

Copier après la connexion

Mais c'est très lent sous IE. Vous pouvez utiliser la méthode suivante :

function listHtml(items) {
 var html = [];
 for (var i = 0; i < items.length; ++i) {
  html[i] = itemHtml(items[i]);
 }
 return '' + html.join(', ') + '';
}

Copier après la connexion

Vous pouvez également utiliser un tableau comme constructeur de chaîne, puis le convertir en chaîne via myArray.join(''). Cependant, comme l'opération d'affectation est plus rapide que le push() du tableau, essayez d'utiliser. l'opération d'affectation.

5. Liste des nœuds de traversée

Les listes de nœuds sont implémentées en ajoutant un filtre à l'itérateur de nœud. Cela signifie que la complexité temporelle pour obtenir ses attributs, tels que la longueur, est O(n), et que le parcours de la liste entière via la longueur nécessite O(n^2). ).

var paragraphs = document.getElementsByTagName_r('p');
for (var i = 0; i < paragraphs.length; i++) {
 doSomething(paragraphs[i]);
}

Copier après la connexion

Ce sera mieux :

var paragraphs = document.getElementsByTagName_r('p');
for (var i = 0, paragraph; paragraph = paragraphs[i]; i++) {
 doSomething(paragraph);
}

Copier après la connexion

Cette méthode fonctionne pour toutes les collections et tous les tableaux (tant que le tableau ne contient pas de valeurs fausses).

Dans l'exemple ci-dessus, vous pouvez également parcourir les nœuds enfants via firstChild et nextSibling.

var parentNode = document.getElementByIdx_x('foo');
for (var child = parentNode.firstChild; child; child = child.nextSibling) {
 doSomething(child);
}

Copier après la connexion

J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!