Always positive
It's need extra effort to understanding logic in negative condition, avoid it as you can
// ❌ Don't 
function isUserNotVerified(){
}
if(!userVerified){
}
// ✅ Do
function isUserVerified(){
}
if(userVerified){
}
Use Shorthands if possible
Shorthands make your code use less line and easier to read
// ❌ Don't
if(isActive ==null){
}
if(firstname !== null || firstname !=='' || firstname !== undefined){
}
const isUserValid = user.isVerified() && user.isActive() ? true : false;
// ✅ Do
if(isActive) {
}
if(!!firstname){
}
const isUserValid = user.isVerified() && user.isActive()
Object literals over Switch statements
// ❌ Don't
const getStatus = (status) => {
  switch (status) {
    case "success":
      return "green";
    case "failure":
      return "red";
    case "warning":
      return "yellow";
    case "loading":
    default:
      return "blue";
  }
};
// ✅ Do
const statusColors = {
  success: "green",
  failure: "red",
  warning: "yellow",
  loading: "blue",
};
const getStatus = (status) => statusColors[status] || statusColors.loading;
Use optional chaining
Remember that optional chaining is not working with IE browser yet, see here
const alice = {
    name:'Alice',
    cat:{
        name:'Nala'
    }
}
// ❌ Don't
const cat = (alice && alice.cat && alice.cat.name) || 'N/A';
// ✅ Do
const cat = alice?.cat?.name ?? 'N/A';
    
Top comments (3)
For shorthands like if(!!something), why cant we just do if (something)???
Yes you could, the only difference is !!something will return boolean