JavaScript optimization of the if statement

Source: Internet
Author: User

UglifyJS is a tool for compressing and beautifying javascript. In its documentation, I see several methods for optimizing if statements. Although I haven't used it for some trial tests, I can see from here that it has done some beautification work on js. Some people may think that the if statement is so simple and can be optimized to what extent? But if you look at the following methods, you may change your mind.

I. Use common ternary Operators

if (foo) bar(); else baz(); ==> foo?bar():baz();if (!foo) bar(); else baz(); ==> foo?baz():bar();if (foo) return bar(); else return baz(); ==> return foo?bar():baz();

You are certainly not familiar with the above use of the ternary operator to optimize the if statement. Maybe you often use it.

2. Use the and (&) and or (|) Operators

if (foo) bar(); ==> foo&&bar();if (!foo) bar(); ==> foo||bar();

Honestly, I didn't write code like this. I saw it when I learned "laruence's Linux house dish", but I didn't expect to implement it in js.

3. Omit braces {}

if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}

You are familiar with this writing method, but I suggest you do it during code optimization or hand it over to UglifyJS to help you solve it. After all, there is one less braces, and the code is not highly readable.

Here, I think of a method for getting HTML element attributes in "proficient JavaScript" by the father of jQuery.

function getAttr(el, attrName){    var attr = {'for':'htmlFor', 'class':'className'}[attrName] || attrName;};

If we do not write this way, we may need to use two if statements for processing. The above code is not only concise and effective, but also highly readable.

Think about it. In some cases, we can find an effective way to solve the problem, but the key is whether we try to find a better way.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.