UglifyJS est un outil pour compresser et embellir le javascript. Dans sa documentation, j'ai vu plusieurs méthodes pour optimiser les instructions if. Bien que je ne l'ai pas utilisé pour faire des tests provisoires, vous pouvez voir ici qu'il embellit js. Certaines personnes peuvent penser que l'instruction if est aussi simple que cela, dans quelle mesure peut-elle être optimisée ? Mais jetez un œil aux méthodes suivantes et vous pourriez changer d’avis.
1. Utilisez des opérateurs ternaires courants
if (foo) bar(); else baz(); ==> ; foo?baz():bar();
if (foo) return bar(); else return baz(); return foo?bar():baz();
Exemple donné par Script House :
100
2. Utilisez les opérateurs et(&&) et ou(||)
if (foo) bar(); ==> foo&&bar();if (!foo) bar();
Pour être honnête, je n'ai jamais écrit de code comme celui-ci. J'ai vu cette façon d'écrire lorsque j'étudiais "Brother Niao's Linux Private Cooking", mais je ne m'attendais pas à l'implémenter en js.
if (foo) return bar(); else thing(); ==>
Vous et moi connaissons cette méthode d'écriture, mais je vous recommande de le faire lors de l'optimisation du code, ou de laisser UglifyJS vous aider à le résoudre. Après tout, s’il manque une accolade, la lisibilité du code n’est pas élevée.En écrivant ceci, j'ai pensé à une méthode pour obtenir les attributs des éléments HTML dans "Mastering JavaScript" du père de jQuery.
function getAttr(el, attrName){
var attr = {'for':'htmlFor', 'class':'className'}[attrName] || attrName;
};
Si nous ne l'écrivons pas de cette façon, nous devrons peut-être utiliser deux instructions if pour le traiter. Le code ci-dessus est non seulement concis et efficace, mais également très lisible.
[compétences javascript] if(x==null) abréviation
if(x==null) ou if (typeof (x) == 'undefined') peut être abrégé comme if(!x), ce qui n'est pas vérifié.
Au contraire si(x) signifie que x n'est pas vide
Déterminer si l'objet existe