eslint/no-new-wrappers 吹毛求疵
功能
禁止使用 new
運算子搭配 String
、Number
和 Boolean
物件
為什麼這不好?
第一個問題是基本型別包裝物件實際上是物件。這表示 typeof 會返回 "object"
,而不是 "string"
、"number"
或 "boolean"
。第二個問題來自於布林物件。每個物件都是真值,這表示即使 Boolean
的實例的實際值為 false
,它始終會解析為 true
。
https://eslint.dev.org.tw/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);