title: Is it bad practice to use Object.create(null) versus {}?
body: <p>I prefer to use <code>Object.create(null)</code>, this way I can use the object as a simple dictionary to store basic information. If I need object functionality, then I'd create a normal object, e.g. <code>var obj = {x:3, etc};</code></p>
  
  <p>This is because {} isn't truly a blank object as it links to the Object prototype so in loops you have to do <code>hasOwnProperty</code> to stop it dancing around the prototype chain and doing this check on every loop hinders performance, albeit it's negligible.</p>
  
  <p>Is it bad practice to use <code>Object.create(null)</code> instead of <code>{}</code>, so I don't have to write <code>hasOwnProperty</code> in every loop?</p>
  
  <p>Edit: Possible <a href="https://stackoverflow.com/q/15518328/1837472">duplicate</a>, but I'm not asking about how or why they're different, instead I'm interested to know if others use <code>Object.create(null)</code>? Is is <a href="https://en.wikipedia.org/wiki/Standard_operating_procedure" rel="noreferrer">SOP</a> in Javascript land? </p>
  
  <p>Edit 2: I also prefer to do one-line checks, e.g. <code>if(obj[someKey])...</code> ht 'Tribute to APJ Kalam Sir'.</p>