8 Javascript useful techniques
Navin Mishra

Navin Mishra @navinmishra1717

About: Programming enthusiast who wants to learn and grow everyday.

Location:
kathmandu, nepal
Joined:
Jun 14, 2022

8 Javascript useful techniques

Publish Date: Mar 15 '23
10 14

js cover

This article collects some common javascript techniques for clean code and better development efficiency

1. Converting string to number.

We might be using Number() and parseInt() to convert string to number. But we can use "+" as well:

Example:

const str = '123';
const num = +str
Enter fullscreen mode Exit fullscreen mode

2. Converting number to string

There is another method to convert number to string.

Example:

const num = 123;
const str = ""+num
Enter fullscreen mode Exit fullscreen mode

But considering readibility and performance, String() and template string are recommended.

3. Ternary operator

The ternary operator is a shorthand way of writing an if-else statement in JavaScript. It is represented by the ? and : symbols, and has the following syntax:

condition ? expression1 : expression2
Enter fullscreen mode Exit fullscreen mode

Example using if/else statement:

let num = 5;
let message;

if (num > 0) {
  message = "Positive";
} else {
  message = "Non-positive";
}
console.log(message); // Output: "Positive"
Enter fullscreen mode Exit fullscreen mode

The same code can be written using the ternary operator as follows:

let num = 5;
let message = (num > 0) ? "Positive" : "Non-positive";
console.log(message); // Output: "Positive"
Enter fullscreen mode Exit fullscreen mode

4. Use object instead of "switch"

We often use switch to handle different things, but have you ever thought of using an object to greatly simplify your code? Let me explain in code.

const n = 1
let result;
switch (n) {
  case 1:
    result = 'res-1'
    break
  case 2:
    result = 'res-2'
    break
  case 3:
    result = 'res-3'
    break  
  // ...There are a lot more
}
Enter fullscreen mode Exit fullscreen mode

We only need to use object map to achieve our goal:

const n = 1
const nMap = {
  1: 'res-1',
  2: 'res-2',
  3: 'res-3'
}
const result = nMap[ n ]
Enter fullscreen mode Exit fullscreen mode

5. Use the "includes" method instead of multiple "if"

We often writes code like this but multiple conditions makes the logic more confusing.

Example:

const n = 1
if (n === 1 || n === 2 || n === 3 || n === 4 || n === 5) {
  // ...
}
Enter fullscreen mode Exit fullscreen mode

Let's use "includes" method to make our code extra clean and maintainable:

const n = 1
const conditions = [ 1, 2, 3, 4, 5 ] // You just need to add new numbers here
if (conditions.includes(n)) {
  // ...
}
Enter fullscreen mode Exit fullscreen mode

6. Use the default parameters of the ES6 function

Example:

const func = (name) => {
  name = name || 'magic'
  console.log(name)
}
Enter fullscreen mode Exit fullscreen mode

Let's use like this instead:

const func = (name = 'magic') => {
  console.log(name)
}
Enter fullscreen mode Exit fullscreen mode

7. Improve variable logging using console.log

Instead of using like this:

const str = "magic"
console.log("str:", str);
Enter fullscreen mode Exit fullscreen mode

We can use like this to improve readability.

const str = "magic"
console.log({str});
Enter fullscreen mode Exit fullscreen mode
This will print like an object with key as "str" and value as "magic".

8. Use of nullish coalescing operator with numbers

The Nullish Coalescing Operator (??) is a logical operator that accepts two values and returns the second value if the first one is null or undefined and otherwise returns the first value.

Example:

let num = 0;
let num2;

console.log(num || 1); // 1
console.log(num2 || 2); // 1
Enter fullscreen mode Exit fullscreen mode

Let's use '??' operator now.

let num = 0;
let num2;

console.log(num ?? 1); // 0
console.log(num2 ?? 2); // 2
Enter fullscreen mode Exit fullscreen mode

Hope you find these techniques useful and able to make your code cleaner. Happy reading!!

Comments 14 total

  • Nikesh Dahal
    Nikesh DahalMar 15, 2023

    useful

    • Navin Mishra
      Navin MishraMar 17, 2023

      Thanks nikesh. I hope you liked it. Happy reading!!

  • Jon Randy 🎖️
    Jon Randy 🎖️Mar 15, 2023

    Only 1 (I think) item here has anything to do with ES6

  • Sergiy
    SergiyMar 15, 2023

    In the second example shouldn't the names be like this?

    const num = 123;
    const str = ""+num

    • Navin Mishra
      Navin MishraMar 17, 2023

      My bad.It should be like this, i'll update. Thanks!!

  • Damian Cyrus
    Damian CyrusMar 15, 2023

    One interesting point in these cases of usefull techniques are two things:

    • is it understandable (also looking at the type of the variable)?
    • how is the performance in combination with readability and maintance?

    Points to the first example:

    There are good reasons why we use String() or .toString(). In these cases it is clear that the variable is changing its type. This is not so clear in ""+num.

    From a reading point of view you are mixing two types, but you are not transforming it. In the end the JavaScript engine decides for you what it should become, and not you.

    It also does not help others to figure out what that shortcut really does and could ask why you add an empty string to a number (if you read it literary) just to transform a number rather use optimised functions for transformation. I would like to ignore template literals in this case, as they have another use case.

    What about performance?

    You could also look up some benchmarks: measurethat.net/Benchmarks/Show/24...

    There are even more benchmarks for this kind of tricks.

    I don't say you should always use the best thing for performance, but using some weirdness of a language just because you can might hurt the readability and in the end maintainability.

    Else, a nice read. Thanks and keep going 😃

    • Navin Mishra
      Navin MishraMar 17, 2023

      Hi damian, thanks for the comment and putting the point on readability and performance. I have only pointed out some useful techniques which means we can also use them if we like to use. Im not saying it is best for performance. Infact, i mostly use String() and template string in my codes as well. Thanks again!!

    • Jon Randy 🎖️
      Jon Randy 🎖️Mar 17, 2023

      Readability is completely subjective, and preaching it above all else can damage the quality of developers over time - sweeping features or 'weirdness' of a language under the carpet will only result in a diminishing understanding of that language and the various 'tricks' (for performance, brevity etc.) that are available.

      Learn everything you can about a language and make your own decisions about what features are best to use in each situation. Don't bow to dogma.

      • Navin Mishra
        Navin MishraMar 17, 2023

        Agreed. Thanks for the comment Jon!!

  • Corners 2 Wall
    Corners 2 WallMar 15, 2023

    In my opinion, first and second points looks so dirty

    • Navin Mishra
      Navin MishraMar 17, 2023

      Might be, but these are only useful Techniques. So we need to use as per our case. Thanks for reading!!

  • Anthony Fung
    Anthony FungMar 15, 2023

    To convert numbers to strings, you can also use string templates:

    const num = `${123}`;
    
    Enter fullscreen mode Exit fullscreen mode
    • Lionel Dsilva
      Lionel DsilvaMar 16, 2023

      This is a far more readable way to do it

    • Navin Mishra
      Navin MishraMar 17, 2023

      There are few other methods as well. But template string is the one i mostly use as well. Thanks for reading!!

Add comment