It's expensive and why would you want to find all elements with a certain node Name? Posted by Frederico Caldeira Knabben on 15 January 2008 | Permalink Best practices: - Surround the equality with parenthesis.
- Add a comment explicitly indicating your intentions.
Usually you just want to compare two values and take action based on whether they're equal or not.
That's why you generally use the equality operator every time the loop restarts.
Posted by Andreas Kalsch on 15 January 2008 | Permalink This point isn't new. However, @Lon: "traverse backwards (which is much cheaper as well)" Could you elaborate on that?
I think it's not confusing if you KNOW what the engine is doing (set the var value to a non boolean and then implicitly casting to boolean). Posted by Lon on 15 January 2008 | Permalink @Christopher Walking backwards through a live Node List is cheaper because you don't have to access the length property, but just compare with 0.
In Java, the compiler gives you a warning for that !
(in java, this only work with boolean as integer are never converted into boolean...) Anyway in my sense, using the implicit conversion from integer to boolean should be avoided because it lacks clarity.
The following loop uses the same number of lines, is no less efficient, and is *much* more obvious in terms of the author's intent. = null; obj = obj.offset Parent) The 'obj = foo' can be omitted if 'obj' has already been assigned.
With the last example you give, ('div = x[i]') it works fine in this particular case, but will not work for arrays which have null entries since it will exit as soon as it hits a null.