Uglifyjs est un outil pour compresser et embellir JavaScript. Dans sa documentation, j'ai vu plusieurs façons d'optimiser les instructions si. Bien que je ne l'ai pas utilisé pour faire des tests d'essai, nous pouvons voir d'ici qu'il embellit JS. Certaines personnes peuvent penser que si les déclarations sont aussi simples, combien peuvent-elles être optimisées? Mais regardez les voies suivantes et vous pouvez changer d'avis.
1. Utilisez des opérateurs ternaires communs
if (foo) bar (); else baz (); ==> foo? Bar (): baz ();
if (! foo) bar (); else baz (); ==> foo? baz (): bar ();
if (foo) de retour bar (); else retourne baz (); ==> return foo? Bar (): baz ();
Vous êtes sûr de vous familiariser avec l'utilisation ci-dessus des opérateurs ternaires pour optimiser les instructions, et peut-être que vous l'utilisez souvent.
Exemples donnés par wulin.com:
La copie de code est la suivante:
<cript>
var i = 9
var ii = (i> 8)? 100: 9;
alerte (ii);
</cript>
Résultat de sortie:
100
2. Utiliser et (&&) et ou (||) Opérateurs
if (foo) bar (); ==> foo && bar ();
if (! foo) bar (); ==> foo || bar ();
Pour être honnête, je n'ai jamais écrit de code comme celui-ci. J'ai vu cette méthode d'écriture lorsque j'étudiais "Bird Bird's Linux Private Vegetable", mais je ne m'attendais pas à le mettre en œuvre dans JS.
3. Omettre les accolades bouclées {}
if (foo) de retour bar (); autre chose (); ==> {if (foo) return bar (); quelque chose()}
Je connais cette méthode d'écriture, mais je suggère de le faire lors de l'optimisation du code ou de le laisser à UGlifyJS pour vous aider à le résoudre. Après tout, si vous manquez d'une attelle, le code n'est pas lisible.
Après avoir écrit ceci, je pense à une méthode du père de jQuery dans "Masterring JavaScript" pour obtenir les attributs des éléments HTML.
function getAttr (el, attName) {
var attR = {'for': 'htmlfor', 'class': 'classname'} [attName] || attrname;
};
Si nous n'écrivons pas de cette façon, nous devrons peut-être en utiliser deux sites pour le traiter, et le code ci-dessus est non seulement concis et efficace, mais aussi très lisible.
Si vous y réfléchissez attentivement, nous pouvons trouver des moyens efficaces de résoudre le problème dans de nombreux cas, mais la clé est de savoir si nous prenons soin de trouver un meilleur moyen.
【Compétences JavaScript】 Abréviation if (x == null)
if (x == null) ou if (typeof (x) == 'Undefined') peut être abrégé comme si (! x), et n'est pas vérifié.
Au contraire, si (x) signifie que x n'est pas vide
Déterminez si l'objet existe
La copie de code est la suivante:
if (document.form1.softurl9) {
// juger si softurl9 existe pour empêcher les erreurs JS
}
La copie de code est la suivante:
if (document.getElementById ("sofTUrl9")) {
// juger si softurl9 existe pour empêcher les erreurs JS
}
Remplir:
javascript || && abréviation si
La copie de code est la suivante:
<script type = "text / javascript">
Si vous voulez écrire
if (! false)
{
alert ('false');
}
Envisagez d'écrire:
false || alert ('false');
false || alert ('false'); vrai || alert ('true'); // sortie false;
Lorsque vous utilisez "||", la première condition est vraie et la deuxième condition est renvoyée directement sans détecter la deuxième condition. La première condition est fausse et la détection de la deuxième condition sera effectuée.
false && alert ('false'); true && alert ('true'); // Sortie True
Lorsque vous utilisez "&&", la première condition est vraie et la deuxième condition sera détectée. La première condition est fausse et il renvoie directement False à la sortie.
En bref, le simple et l'aspect pratique de remplacer si ,? : le praticité de remplacer si d'autre. Écrire un code court et concis
usage:
$ ("# REGFORT INPUT [Type! = Hidden]"). Chacun (
fonction (index) {
$ (this) .parent (). Has ("div.valid-under"). longueur || $ ('<div> </div>'). APPENDTO ($ (this) .parent ());
}
));
</cript>