Like any kind of apps, JavaScript apps also have to be written well.

Otherwise, we run into all kinds of issues later on.

In this article, we’ll look at some tips we should follow to write JavaScript code faster and better.

### Pause Execution of a Function

We can pause execution of a function by creating our own `sleep`

function.

For instance, we can write:

```
const sleep = (ms) => {
return new Promise(resolve => setTimeout(resolve, ms))
}
```

We return a promise with the `setTimeour`

function. The callback is the `resolve`

function.

`ms`

is the amount of pause execution in `ms`

.

Then we can use it by writing:

```
const foo = async () => {
await sleep(2000);
// do more stuff
}
```

We called `sleep`

with 2000 so the function will pause for 2 seconds before running the code below the `sleep`

call.

It can be used with a loop:

```
const loop = async () => {
for (const item of arr) {
await sleep(2000);
console.log(item);
}
}
```

for-of loops can be used with promises.

So `sleep`

will pause the loop body for 2 seconds.

### Generate Random and Unique Strings

We can use the `randomstring`

package to generate random strings.

For instance,e we can wrote:

```
const randomstring = require('randomstring');
`randomstring.generate(20);`
```

to generate a string of length 20.

To generate multiple unique strings, we can put all the items in a set.

For instance, we can write:

```
`const randomstring = require('randomstring');
`const strings = new Set()
while (strings.size < 50) {
strings.add(randomstring.generate(20));
}
```

Then we generate unique strings until the set has 50 strings.

Then we can retrieve the strings with the `values`

method.

For instance, we can write:

```
for (const value of strings.values()) {
console.log(value);
}
```

### JavaScript Math Object

JavaScript `Math`

object has many properties and methods to make doing math easier.

#### Math.abs()

The `Math.abs`

method returns the absolute value of a number.

We can write:

```
Math.abs(-10)
```

and get 10.

#### Math.acos()

Returns the arccosine of the argument.

For instance, we can write:

```
Math.acos(0.3)
```

and we get 1.2661036727794992.

#### Math.asin()

Returns the arcsine of the argument.

For instance, we can write:

```
Math.asin(0.5)
```

and we get 0.5235987755982989.

#### Math.atan()

Returns the rectangle of the argument.

For example, we can write:

```
Math.atan(20)
```

and we get 1.5208379310729538.

#### Math.atan2()

Returns the arctangent of the quotient of its arguments.

For instance, we can write:

```
Math.atan2(3, 2)
```

and get 0.982793723247329.

#### Math.ceil()

Rounds a number up to the nearest integer.

For instance, we can write:

```
Math.ceil(1.99999)
```

and get 2.

#### Math.cos()

Returns the cosine of the angle expressed in radians.

For example, we can write:

```
Math.cos(0)
```

and get 1.

#### Math.exp()

Returns the value of `e`

multiplied per exponent that’s passed as the argument.

For example, we can write:

```
Math.exp(2)
```

and get 7.38905609893065.

#### Math.floor()

Rounds the number down to the nearest integer.

For instance, we can write:

```
Math.floor(1.99999)
```

and get 1.

#### Math.log()

Gets the natural logarithm of a number.

For instance, we can write:

```
Math.log(Math.E)
```

and get 1.

#### Math.max()

Gets the maximum number in the set of numbers passed as arguments.

For instance, we can write:

```
Math.max(1, 2, 3)
```

and get 3.

#### Math.min()

Gets the minimum number in the set of numbers passed as arguments.

For example, we can write:

```
Math.max(1, 2, 3)
```

and get 1.

#### Math.pow()

Raised the first argument to the second argument.

For instance, we can write:

```
Math.pow(2, 3)
```

and get 8.

#### Math.random()

Returns a pseudorandom number between 0 and 1.

For instance, we can write:

```
Math.random()
```

and get 0.08500663407619236.

#### Math.round()

Returns the nearest integer.

For instance, we can write:

```
Math.round(1.3)
```

and get 1.

#### Math.sin()

Gets the sine of the angle expressed in radians.

For example, we can write:

```
Math.sin(0)
```

and get 0.

#### Math.sqrt()

Gets the square root of the argument.

For instance, we can write:

```
Math.sqrt(9)
```

and get 3.

#### Math.tan()

Gets the angle of an angle in radians.

For instance, we can write:

```
Math.tan(Math.PI * 2)
```

and we get -2.4492935982947064e-16.

### Arithmetic Operators

JavaScript has the usual arithmetic operators.

They’re addition, subtraction, multiplication, division, remainder, and exponentiation.

Then we can write:

```
const three = 1 + 2;
```

for addition.

But we’ve to make sure that both operands are numbers. Otherwise, it’s used as concatenation.

Subtraction is written as:

```
const three = 5 - 2;
```

Division can be written as:

```
const result = 20 / 10;
```

If we divide by zero, we get `Infinity`

or `-Infinity`

.

Multiplication can be done by writing:

```
1 * 2
```

We can exponentiate by writing:

```
2 ** 3
```

and get 8.

We can get the remainder of division by writing:

```
const result = 20 % 6
```

and get 2.

### Conclusion

There are many operations and math methods we can use.

Also, we can pause execution of functions by using `setTimeout`

.