Javascript Shorthands Tips

These Javascript shorthand tips will make your code look more cool and clean. Let's begin.

1. '+': Integer typecasting

Most of use do not known that "+" can be use for Integer typecasting. Like this example:

// longhand
let num = parseInt('69');
let float = parseFloat('69.69');

// shorthand
let num = +'69';
let float = +'69.69';

2. Merge array, object by Spread Operator

ES6 intro us the most powerful syntax is Spread Operator, I think. It can be used to replace centain array, object functions. The spread operator is simply a series of three dots.

const a = [1, 2, 3];

// longhand
const x = [4, 5, 6].concat(b);

// shorthand
const x = [4, 5, 6, ...b];
const y = [4, ...b, 5, 6]; // you can use it anywhere inside an array

// Merge two object
const k = { hi: 'there', val: 100 };
const o = { ...k, foo: 'baz' };

// Copy
const aa = [...a];

3. Function Return

To return a value from a function we use the return keyword, but we can skip that with arrow function with a single statement.

// longhand
const mul = (a, b) => {
  return a * b;
};

// shorthand
const mul = (a, b) => a * b;

4. Decimal Values

We can write the long number without trailing zeroes, like this

// longhand
const max = 1000000;

// shorthand
const max = 1e6;

1 === 1;
1e1 === 10;
1e2 === 100;
1e3 === 1000;
1e4 === 10000;
1e5 === 100000;

Bonus:

const max = 1_000_000;
const num = 1_246_357; // cool, lah?

5. '~': Bitwise IndexOf

~ (bitwise NOT) takes one number and inverts all bits of it. The usage of ~ and indexOf is,

// longhand
if (arr.indexOf(item) > -1) {
  /* Confirm item IS found */
}
if (arr.indexOf(item) === -1) {
  /* Confirm item IS NOT found */
}

// shorthand
if (~arr.indexOf(item)) {
  /* Confirm item IS found */
}
if (!~arr.indexOf(item)) {
  /* Confirm item IS NOT found */
}

You can use it as a replacement for Math.floor()

// longhand
Math.floor(4.9) === 4; // true

// shorthand
~~4.9 === 4; //true

6. Object Property Value

If you want to define an object who's keys have the same name as variables pass-in as properties, try this tip.

const cat = 'Miaow';
const dog = 'Woof';

// longhand
const obj = {
  cat: cat,
  dog: dog,
  bird: 'Peet',
};

// shorthand
const obj = {
  cat,
  dog,
  bird: 'Peet',
};

source: https://alligator.io/js/object-property-shorthand-es6/

7. String template

Aren't you tired of using + to concatenate multiple variables into a string?

// longhand
const url = 'http://' + host + ':' + port + '/' category + '?' + params

// shorthand
const url = `http://${host}:${port}/${category}?${params}`

Writing multi-line strings in code, just use the backticks

// longhand
const long_text =
  'Lorem ipsum dolor sit amet, consectetur' +
  'adipisicing elit, sed do eiusmod tempor incididunt' +
  'ut labore et dolore magna aliqua. Ut enim ad minim';

// shorthand
const long_text = `Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua. Ut enim ad minim`;

8. Exponent Power Shorthand

Like python

// longhand
Math.pow(2, 3); // 2^3 = 8

// shorthand
2 ** 3; // 2^3 = 8

Thanks for reading, happy coding <3

WebWebJavascript