一、什么是对象字面量
对象字面值是封闭在花括号对{}中的,包含零个或多个"键-值"对的(元素)列表。但是{}不能出现在一条语句的开头,否则{}内会被认为是一个语句块。
以下对象car就是对象字面量的例子:
function CarTypes(name) {
return (name === "WuLing") ?
name :
"抱歉我们没有卖" + name + "." ;
}
let remainsCount = 10
let car = {
myCar: "小Mini",
getCar: CarType("WuLing"),
num: remainsCount
}
console.log(car.MyCar) // 小Mini
console.log(car.getCar) // WuLing
console.log(car.num) // 10
二、如何用对象字面量替换条件判断
常用的条件判断写法 —— if/else
if(YouWant.toLowerCase() === 'fruit') {
return '大西瓜'
} else if (YoutWant.toLowerCase() === 'animal') {
return '小红兔'
} else if (YouWant.toLowerCase() === 'cartoon') {
return '《那年那兔》'
} else {
return '别要了,没了!'
}
常用的条件判断写法 —— switch
switch(YouWant.toLowerCase()) {
case 'fruit': return '大西瓜';
case 'animal': return '小红兔';
case 'cartoon': return '《那年那兔》';
default: return '别要了,没了!'
}
Object 替换方案
const ObjectChoice = {
fruit: '大西瓜',
animal: '小红兔',
cartoon: '《那年那兔》',
}
return ObjectChoice[YouWant.toLowerCase()] ?? '别要了,没了!'
可以看到Object的方案结果与上面两个一致。
三、Object 方案的优缺点
- 优点:
Object看起来相对整洁;- 检查条件更少。
- 缺点:
- 只能针对字面量的返回,对于复杂逻辑无法处理;
- 对象键的值太多的情况下会不注意出现重复,可以用
Map进行替代优化。