← #78 Replace multiple if statements with a lookup table
#79

Do not use magic numbers when manipulating strings

Topics: JavaScript

It's quite often that we pass the index parameter when using string manipulation functions such as slice, splice, substr or substring.

Let's take a look at a simple example which converts a given date object to YYYY-MM-DD format.

Given a date object, we can get the string representing the date in the ISO format:

date.toISOString()
// '2021-03-09T01:42:46.002Z'

The output is constructed by different parts which starts with the full date, 2021-03-09 as we see in the example above.
So, it's easy to get the full date by extracting it from the ISO format:

const format = date => date.toISOString().slice(0, 10);

10 is called a magic number, because when the other people look at the code, they don't have idea where the number comes from.

Rather than using a magic number, it's recommended to explain what it is and how it's calculated:

// The better version
const FULL_DATE_LENGTH = 'YYYY-MM-DD'.length;

const format = date => date.toISOString().slice(0, FULL_DATE_LENGTH);

More

Fix a typo or suggest an improvement
#80 Create a polyfill