JavaScript原始值构造函数的存在意义与实际适用场景咨询
原始值构造函数的合理使用场景示例
new Number 实用场景1:给数值附加元数据,同时保留原生运算能力
当你需要给某个数值附带额外的业务属性(比如采集来源、单位、生成时间),又希望它能和普通原始数值一样参与加减乘除、大小比较等运算时,就可以使用new Number构造:
// 构造带元数据的温度数值 const workshopTemp = new Number(26.3); workshopTemp.collectDevice = '传感器A07'; workshopTemp.unit = '℃'; workshopTemp.collectTime = '2024-06-12 10:25'; // 完全兼容普通数字的所有运算、比较逻辑 console.log(workshopTemp + 1.2); // 输出 27.5 console.log(workshopTemp > 25); // 输出 true // 可随时读取附加的业务元数据 console.log(`车间温度${workshopTemp}${workshopTemp.unit},采集自${workshopTemp.collectDevice}`); // 输出:车间温度26.3℃,采集自传感器A07
new Number 实用场景2:区分「有效值0」和「未赋值空状态」
普通数字0是假值,在做表单校验、数据统计时,无法区分用户是未填写数值,还是填写了合法的0值,用new Number(0)就可以解决这个问题:
// 未填写的收入字段用null标识,用户主动填写的0收入用new Number(0)标识 const userMonthIncome = new Number(0); // 校验用户是否完成该字段填写 if (userMonthIncome) { // 可正常进入该分支,不会把合法的0值判定为未填写 console.log(`用户填写的月收入为${userMonthIncome}元`); }
其他同类构造函数的通用逻辑
String、Array等带字面量的构造函数用法逻辑一致:
new String可以给文本内容附加版权、作者等属性,同时保留字符串拼接、截取等原生行为new Array(len)可以快速生成指定长度的预填充数组,是字面量写法无法替代的功能
内容的提问来源于stack exchange,提问作者I wrestled a bear once.
相关产品推荐
相关产品推荐

