Do I use .size() or .length in Javascript?

Let’s have a closer look…

.size() simply calls .length (clearly shown this in the jQuery source code below) so we are saving a function call

// The number of elements contained in the matched element set
        size: function() {
                return this.length;

.length() has been proved to be faster than .size() (clearly shown is a jsperf test). So why is the .size() function in jQuery? My initial guess would be that they are keeping it abstract so that if a different way of calculating the .length is required in the future it may provide a backwards compatible API.

Common usage you may have seen:

//check if a DOM element is present
if ($('#id').length > 0) { ... }

So in a nutshell, I use .length until someone gives me a substantial reason not to.

Sam Deering is a Front-end Web Developer who specialises in JavaScript & jQuery. Sam is driven and passionate about sharing his knowledge to educate others.

Free Guide:

How to Choose the Right Charting Library for Your Application

How do you make sure that the charting library you choose has everything you need? Sign up to receive this detailed guide from FusionCharts, which explores all the factors you need to consider before making the decision.

  • dmathisen

    I agree – definitely use .length because, as you said, it save an unnecessary function call.

    if ($(‘#id’).length > 0) { … }
    can be simplified to:
    if ($(‘#id’).length) { … }

Special Offer
Free course!

Git into it! Bonus course Introduction to Git is yours when you take up a free 14 day SitePoint Premium trial.