I don't consider mentioned code a bad or newbie practise. I prefer to write the code this way, because it tells you more explicitely what are you testing. You might get wrong behaviour using this approach, consider this:
if({}) { console.log('true') } else { console.log('false') } // true
if([]) { console.log('true') } else { console.log('false') } // true
if({} === true) { console.log('true') } else { console.log('false') } // false
if([] === true) { console.log('true') } else { console.log('false') } // false
Also, comparing objects in Javascript using double-equals can create unwanted behaviour, hence it's recommended to use three-equals operator:
console.log(99 == "99"); // true
console.log(0 == false); // true
Read more here impressivewebs.com/why-use-triple-equals-javascipt