DEV Community

Cover image for TIPS & TRICKS OF JAVASCRIPT & REACT
Nipu Chakraborty
Nipu Chakraborty

Posted on

TIPS & TRICKS OF JAVASCRIPT & REACT

TIPS 1: Easiest way of string to integer conversion.

const value_1 = "1" 

const value_2 = "2"

function add(field_1, field_2){

  return field_1 + field_2;
}


add(+value_1, +value_2); 
Enter fullscreen mode Exit fullscreen mode

TIPS 2: Easiest way of float to integer conversion.

const floatToInt = 23.9 | 0;
Enter fullscreen mode Exit fullscreen mode

TIPS 3: Use Global object always should not need localStorage

Note[if data is is static then you should use it. and don’t use any kind secret or confidential data here..]

const user = {

  first_name: "Rowan",

  last_name: "Atkinson"
}

window.user=user
Enter fullscreen mode Exit fullscreen mode

TIPS 3: Don’t use if not necessary ternary (?:)

const DemoComponent = ()=>{

const [show, setShow] = useState(false)

   return (<div>

     {show? <Message/>: ''}

</div>)
}
Enter fullscreen mode Exit fullscreen mode

Right way with (&&)

const DemoComponent = ()=>{
const [show, setShow] = useState(false)

   return (<div>
     {show && <Message/>}
    </div>)
}
Enter fullscreen mode Exit fullscreen mode

TIPS 4: Don’t do it

if (variable1 !== null || variable1 !== undefined || variable1 !== '') {
     let variable2 = variable1;
}
Enter fullscreen mode Exit fullscreen mode

Do this short and simple

const variable2 = variable1  || 'new';
Enter fullscreen mode Exit fullscreen mode

TIPS 5: Don’t do it

Math.floor(4.9) === 4 // true
Enter fullscreen mode Exit fullscreen mode

Do this short and simple

~~4.9 === 4 // true
Enter fullscreen mode Exit fullscreen mode

TIPS 6: Don’t do it

switch (something) {

  case 1:
    doSomething();

  break;
case 2:
    doSomethingElse();
  break;
case 3:
    doSomethingElseAndOver();
  break;
  // And so on...
}
Enter fullscreen mode Exit fullscreen mode

Do this short and simple

const cases = {
  1: doSomething(),

  2: doSomethingElse(),

  3: doSomethingElseAndOver()
};
Enter fullscreen mode Exit fullscreen mode

[Note: This one has performance issue I prefer use this one when you have crying need. Switch statement is more faster than this solution

TIPS 7: Don’t do it

if(x == 1 || x == 5 || x == 7)  {
  console.log('X has some value');
}
Enter fullscreen mode Exit fullscreen mode

Do this short and simple

([1,5,7].indexOf(x) !=- 1) && console.log('X has some value!');
Enter fullscreen mode Exit fullscreen mode

TIPS 8: Don't do it

const param1 =1;
const param2 = 2;
const param3 = 3;
const param4 = 4;


function MyFunc =(param1, param2, param3, param4)=>{
  console.log(param1, param2, param3, param4)
}

MyFunc(param1, param2, param3, param4)

Enter fullscreen mode Exit fullscreen mode

Do this short and simple

const params = {param1: 1, param2: 2, param3: 3, param4: 4}

function MyFunc =({param1, param2, param3, param4})=>{
  console.log(param1, param2, param3, param4)

}

MyFunc(params)
Enter fullscreen mode Exit fullscreen mode

TIPS 9: Don’t do it

function Myfunc(value){
   if(value){
     console.log("you have a value")
   }else{
      throw new Error("You don't have a value")
   }
}
Enter fullscreen mode Exit fullscreen mode

Do this short and simple

NOTE: If you check error first then it’s don’t go else block but if you do first one it will check first value is exist then if not found it will go the else block.

function Myfunc(value){
   return !value ? throw new Error("You don't have a value") : console.log("you have a value")
}
Enter fullscreen mode Exit fullscreen mode

Latest comments (10)

Collapse
 
abhighyaa profile image
Abhighyaa Jain

Hey, how does logical or(|) turns a floating no to integer?

Collapse
 
samueljklee profile image
Samuel Lee

I read your detailed comments and completely agree with the points mentioned.
I think the author should be open to the community's feedback. It's not even offensive but rather can help the author and the community to learn.

Collapse
 
prabhukadode profile image
Prabhu

Nice

Collapse
 
olvnikon profile image
Vladimir

Totally agree with you. Had the same feelings when was reading those "tips". The comment is constructive and not offensive at all. I'm supporting you on the concern.

Collapse
 
val_baca profile image
Valentin Baca

I agree with your detailed comment. There are more readable built-in functions for many of these tricks. Some of these tricks don't handle all the cases well (like using || for default breaks if zero is given and should be considered a valid input).

These are more "cute" tricks or "hacks" than ones you should be pulling into your production code.

Collapse
 
val_baca profile image
Valentin Baca

For Tip #5, the ~~ trick is more like Math.trunc rather than Math.floor

See the behavior on negative numbers:

Math.floor(-2.2)
-3
Math.trunc(-2.2)
-2
~~(-2.2)
-2
Enter fullscreen mode Exit fullscreen mode
Collapse
 
itays123 profile image
Itay Schechner

This is some useful piece of content

Collapse
 
nipu profile image
Nipu Chakraborty

Thanks

Collapse
 
miketalbot profile image
Mike Talbot ⭐ • Edited

Nice list :)

I'd just say on Tip 7: [1,5,7].includes(x) is neater as there's no magic -1 (and it's shorter)

Tip 8: can work, but functions with few parameters can benefit from not having to force names on the user.

Collapse
 
nipu profile image
Nipu Chakraborty

Thanks for your feedback

Some comments have been hidden by the post's author - find out more