eslint/no-new-wrappers 死板
它做什么
禁止使用 String
、Number
和 Boolean
对象的 new
运算符
为什么这样做不好?
首先,原始包装器对象实际上是对象。这意味着 typeof 将返回 "object"
而不是 "string"
、"number"
或 "boolean"
。第二个问题来自布尔对象。每个对象都是真值,这意味着 Boolean
的实例始终解析为 true
,即使它的实际值为 false
。
https://eslint.org.cn/docs/latest/rules/no-new-wrappers
示例
此规则不正确的代码示例
js
var stringObject = new String("Hello world");
var numberObject = new Number(33);
var booleanObject = new Boolean(false);
此规则正确的代码示例
js
var stringObject = "Hello world";
var stringObject2 = String(value);
var numberObject = Number(value);
var booleanObject = Boolean(value);