Skip to content

Latest commit

 

History

History
39 lines (27 loc) · 1.31 KB

do-not-use-magic-numbers-when-manipulating-strings.md

File metadata and controls

39 lines (27 loc) · 1.31 KB
title category date topics
Do not use magic numbers when manipulating strings
Best practice
2021-03-09 08:34:00 +7
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);

See also