首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

no-magic-numbers

“魔术数字”是代码中多次出现的数字,没有明确的含义。它们应该最好由命名常量替换。

代码语言:javascript
复制
var now = Date.now(),
    inOneHour = now + (60 * 60 * 1000);

规则细节

no-magic-numbers规则旨在通过确保将特殊数字声明为常量以使其含义明确,从而使代码更易读并且重构更容易。

此规则的错误代码示例:

代码语言:javascript
复制
/*eslint no-magic-numbers: "error"*/

var dutyFreePrice = 100,
    finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
代码语言:javascript
复制
/*eslint no-magic-numbers: "error"*/

var data = ['foo', 'bar', 'baz'];

var dataLast = data[2];
代码语言:javascript
复制
/*eslint no-magic-numbers: "error"*/

var SECONDS;

SECONDS = 60;

此规则的正确代码示例:

代码语言:javascript
复制
/*eslint no-magic-numbers: "error"*/

var TAX = 0.25;

var dutyFreePrice = 100,
    finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

选项

ignore

一组要忽略的数字。它默认设置为[]。如果提供,它必须是一个Array

示例选项的正确代码示例{ "ignore": [1] }

代码语言:javascript
复制
/*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/

var data = ['foo', 'bar', 'baz'];
var dataLast = data.length && data[data.length - 1];

ignoreArrayIndexes

用于指定用作数组索引的数字是否可以使用的布尔值。false默认。

选项的正确代码示例{ "ignoreArrayIndexes": true }

代码语言:javascript
复制
/*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/

var data = ['foo', 'bar', 'baz'];
var dataLast = data[2];

enforceConst

一个布尔值,用于指定是否应在数字变量声明中检查 const 关键字。false默认。

选项的错误代码示例{ "enforceConst": true }

代码语言:javascript
复制
/*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/

var TAX = 0.25;

var dutyFreePrice = 100,
    finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

detectObjects

一个布尔值,用于指定设置对象属性时是否应检测数字。false默认。

选项的错误代码示例{ "detectObjects": true }

代码语言:javascript
复制
/*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/

var magic = {
  tax: 0.25
};

var dutyFreePrice = 100,
    finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

选项的正确代码示例{ "detectObjects": true }

代码语言:javascript
复制
/*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/

var TAX = 0.25;

var magic = {
  tax: TAX
};

var dutyFreePrice = 100,
    finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

版本

该规则在 ESLint 1.7.0 中引入。

资源

扫码关注腾讯云开发者

领取腾讯云代金券