News for hackers. Stuff that matters.
Re:Why You Should Always Use === and Other Bad Practices by goldenkey on Sunday February 09, 2014 @06:53PM (#7208084)
I agree that the Array methods are extremely useful other than their ugly performance-sacrificing function scope. In this case though, when you need alternate behavior for the first index, it is much clearer to read a standard for loop with some precursor code behind it, than to read a forEach loop with an if-else.
Re:Why You Should Always Use === and Other Bad Practices by inglor on Sunday February 09, 2014 @07:06PM (#7208155)
Really? You find the above loop more readable than:

    if(array.length > 0) doFunction(array[0]);
    array.slice(1).forEach(doOtherFunction);
Re:Why You Should Always Use === and Other Bad Practices by goldenkey on Sunday February 09, 2014 @07:10PM (#7208172)
You're kind of cheating because you're using slice which will create a copy of the Array, and that's not cheap if the array is large.
Re:Why You Should Always Use === and Other Bad Practices by inglor on Sunday February 09, 2014 @07:15PM (#7208197)
People use arrays for things like queues and stacks all the time in JavaScript - they're _much_ slower than hand rolled collection (eg. http://jsperf.com/deque-vs-array-2 ) - why not micro optimize that as well?

If you have a very large array of course optimization can/should be considered but that's simply not the average case.

Re:Why You Should Always Use === and Other Bad Practices by goldenkey on Monday February 10, 2014 @02:12AM (#7209595)
I actually like the slice code for it's ease of readability. Functional methods are extremely nice and I hope they get faster and faster with the optimization of JS JITs.

I never heard of Dequeue [1], that is mighty cool. I agree that premature optimization is not good - but when it can be done cleanly without hurt to the readability of the code, I'd say to keep it in ones' repertoire, to effectively write more performant code, more often, on average.

[1] http://code.stephenmorley.org/javascript/queues/