魔術字符串指的是,在代碼之中屢次出現、與代碼造成強耦合的某一個具體的字符串或者數值。 風格良好的代碼,應該儘可能消除魔術字符串,改由含義清晰的常量代替。async
const shapeType = {
triangle: 'Triangle'
};
function getArea(shape, options) {
let area = 0;
switch (shape) {
case shapeType.triangle:
area = .5 * options.width * options.height;
break;
}
return area;
}
getArea(shapeType.triangle, { width: 100, height: 100 });
複製代碼
上面代碼中,咱們把Triangle寫成shapeType對象的triangle屬性,這樣就消除了強耦合。 若是仔細分析,能夠發現shapeType.triangle等於哪一個值並不重要,只要確保不會跟其餘shapeType屬性的值衝突便可。所以,這裏就很適合改用 Symbol 值。 不用爲常量去費力想初始值了
函數
const shapeType = {
triangle: Symbol()
};
複製代碼
const user = new User();
user.name = "Leo";
await connection.manager.save(user);
const photo1 = new Photo();
photo1.url = "me.jpg";
photo1.user = user;
await connection.manager.save(photo1);
複製代碼
因爲photo實例的user屬性須要用到上一段中建立的user,因此對connection.manager.save(user);
這個方法使用了await
標誌,使用這個標誌,表示其後的語句須要等待await
方法執行完畢後再執行ui