“Javascript: the Good Parts”: the Good Parts

  • Use JSLint to determine if what you are doing is sensible.
  • Avoid “/* … */” for comments, “*/” appears in useful constructs in javascript. Use “//”.
  • Javascript strings are 16-bit unicode. It has no character type, only string.
  • All numbers are numeric, there is no int/float/etc.
  • The value Infinity represents all values greater than ~1.79E+308
  • Javascript has functional scoping. Braces do not denote scope. Thus, declare variables at the top of functions not within braces.
  • Falsy values: false, null, undefined, ” (empty string), 0, NaN. Everything else is truthy.
  • If using a for ... in loop you must you hasOwnProperty.
  • typeof returns "object" for an array and for null.
  • Declare var that = this; in a function so that inner functions can access that function’s this value. (Prefer “self”?)
  • Because functions are first class objects, javascript supports currying.
  • General memoizer (p. 45)
  • Don’t use new at all.
  • Functional inheritance (p. 52).
  • Do not use “/g” with RegExp.test.
  • Prefer “if (” to “if(” because “if(” looks like a method invocation.
  • K&R-style curly braces because of how return works in javascript.
  • Always pass the second parameter (radix) to parseInt.
  • Always use === and !== not == and !=.
  • Do not use with.
  • Use JSON.parse not eval.
  • Do not use ++ and --.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>