Javascript 为什么对html属性使用变量?
该站点提供以下代码片段:Javascript 为什么对html属性使用变量?,javascript,string,object,Javascript,String,Object,该站点提供以下代码片段: var IMG = new String('img'); var DOT = new String('.'); var CLASS = new STRING('class'); DOT.concat(CLASS_FILTER) 为什么不每次简单地写“img”或“.class”?你问题中引用的代码看起来是由不太精通JavaScript的人编写的,因为它不必要地创建字符串对象。如果它确实存在,它应该是: var IMG = 'img'; v
var IMG = new String('img');
var DOT = new String('.');
var CLASS = new STRING('class');
DOT.concat(CLASS_FILTER)
为什么不每次简单地写“img”或“.class”?你问题中引用的代码看起来是由不太精通JavaScript的人编写的,因为它不必要地创建
字符串
对象。如果它确实存在,它应该是:
var IMG = 'img';
var DOT = '.';
var CLASS = 'class';
或者在ES2015中+
const IMG = 'img';
const DOT = '.';
const CLASS = 'class';
至于“为什么要这样做”,我能想到的最好的理由是,它允许你找到你为IMG
标记而使用的IMG
的所有位置,而不必找到你完全用于其他目的的'IMG'
它不是未来的证明(或者至少有人希望它不是命中注定的)。如果您后来将
IMG
更改为'image'
,而不更改其名称,这将严重误导从事该代码工作的后续作者。您问题中引用的代码看起来像是由不太精通JavaScript的人编写的,因为它不必要地创建字符串
对象。如果它确实存在,它应该是:
var IMG = 'img';
var DOT = '.';
var CLASS = 'class';
或者在ES2015中+
const IMG = 'img';
const DOT = '.';
const CLASS = 'class';
至于“为什么要这样做”,我能想到的最好的理由是,它允许你找到你为IMG
标记而使用的IMG
的所有位置,而不必找到你完全用于其他目的的'IMG'
它不是未来的证明(或者至少有人希望它不是命中注定的)。如果您后来将
IMG
更改为'image'
,而不更改其名称,这将严重误导从事代码工作的后续作者。看起来这可能是某种误导性的优化尝试。看起来可能是某种误导性的优化尝试。观点:使用常数作为幻数是合理和有用的,但一般来说,对文字使用常量没有多大意义。回答清楚,谢谢。让我更加了解复制陷阱提示:对幻数使用常量是合理和有用的,但一般来说,对文字使用常量没有多大意义。回答清楚,谢谢。让我更加意识到抄袭陷阱