魔术字符串是指:在代码指中多次出现,与代码形成强耦合的某一个具体的字符串或者数值。风格良好的代码,应该尽量消除魔术字符串,改成含义清晰的变量代替。
function getArea(shape, options) {
...
switch (shape){
case 'Triangle': { // 魔术字符串,出现一次
.....
break;
},
....
}
}
getArea('Triangle', ...) // 魔术字符串“Triangle”又出现了一次
应该优化成如下:
const shapeType = {
TRIANGLE: 'Triangle',
....
}
function getArea(shape, options) {
...
switch (shape){
case shapeType.TRIANGLE: {
.....
break;
},
....
}
}
getArea(shapeType.TRIANGLE, ...)
这样“Triangle”就只定义了一遍,有利于他的唯一性,便于维护。