From https://gitter.im/airbnb/javascript
September 3, 2015
justin808: Any advice on using the methods in lodash versus built-ins, such as map on Array?
I tend to always use lodash so as not to remember what JS has built-in, but maybe that’s not optimal?
goatslacker: lodash methods were faster than native methods last time I checked because they’re not spec compliant.
if you have something like lodash I guess it’s best to use it rather than not
justin808: I like that for consistency, simply using lodash.
@goatslacker if you were starting a new project, would you go modernized (no semicolons)? LIke this website offers: http://es6-features.org/ The default it shows is “modernized”.
justin808: Just saw this:
foo();
[1,2,3].forEach(bar);
you could do this:
foo()
;[1,2,3].forEach(bar)
goatslacker: I actually find it more difficult to remember when to use a semicolon than when not.
justin808: An Open Letter to JavaScript Leaders Regarding Semicolons does some explaining
goatslacker: yeah
justin808: I’m most familiar with ruby where you end a line with a comma and it continues
goatslacker: No, you don’t need semicolons. The eternal JavaScript debate on… | by Josh Perez | Medium
i wrote about it too
justin808: the JS rule using what’s on the next line…boy, that would take some getting used to.
@goatslacker do you work at AirBnb?
goatslacker: I do
justin808: I see, there’s a couple rules of when to begin a line with semicolons if you’re choosing the “modern” syntax.
Are the linters as helpful on the style of not using semicolons?
Basically, @goatslacker would you use GitHub - standard/standard: 🌟 JavaScript Style Guide, with linter & automatic code fixer for a new project, say you were going to create a new startup company.
goatslacker: yeah, I usually don’t begin lines with arithmetic operators, braces, a parenthesis, or a template literal.
nah, I’d use Airbnb style guide with semicolons and all
semicolons are popular amongst the JS community
justin808: From standard:
Never start a line with ( or [
This is the only gotcha with omitting semicolons – automatically checked for you!
goatslacker: that’s actually not the only gotcha, arithmetic operators also fail
and so do template literals
justin808: @goatslacker, thanks! Really psyched to get my projects on ES6 with these guidelines. ESLint seems to potentially support them very well.
goatslacker:
var a = 2
+1
console.log(a === 3)
yeah eslint and jscs are nice
justin808: Ruby would treat that totally differently. That’s what I don’t like.
Is there a jscs setup for the airbnb style guide?
Maybe this: jscs-dev/node-jscs@79ff109
goatslacker: yes, that works well
justin808: @goatslacker worth it to use both at same time? (eslint and jscs?)
goatslacker: yeah definitely
justin808 Thanks!
goatslacker: eslint catches bugs, jscs enforces style guide
justin808: I’m starting a new project, so looking forward to getting it started with linters, as it’s too hard to catch up later on a big project.
goatslacker: start off on the right foot