Disallow Magic Numbers (no-magic-numbers)
‘Magic numbers’ are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.
var now = Date.now(),
inOneHour = now + (60 * 60 * 1000);
Rule Details
The no-magic-numbers
rule aims to make code more readable and refactoring easier by ensuring that special numbers
are declared as constants to make their meaning explicit.
The following pattern is considered a problem:
/*eslint no-magic-numbers: 2*/
var dutyFreePrice = 100,
finalPrice = dutyFreePrice + (dutyFreePrice * 0.25); /*error No magic number: 0.25*/
The following pattern is considered okay:
/*eslint no-magic-numbers: 2*/
var TAX_PERCENTAGE = 0.25;
var dutyFreePrice = 100,
finalPrice = dutyFreePrice + (dutyFreePrice * TAX_PERCENTAGE);
Options
ignore
An array of numbers to ignore. It’s set to [0, 1, 2]
by default.
If provided, it must be an Array
.
enforceConst
A boolean to specify if we should check for the const keyword in variable declaration of numbers. false
by default.
detectObjects
A boolean to specify if we should detect numbers when setting object properties for example. false
by default.
Version
This rule was introduced in ESLint 1.7.0.