十四、三元表达式

十四、三元表达式

三元表达式(三元运算符),三元表达式是JS中唯一一个需要三个元素参与的运算

14.1 结构原理

结构:

条件表达式? 值1: 值2;

当表达式为真时取值1;当表达式为假时取值2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script>
var a = true ? 1 : 0;
console.log(a); // 1
</script>


<script>
// 等价if写法
var a = false;
if(a){
console.log(1);
}else{
console.log(0); // 0
}
</script>

14.2 三元表达式的应用

应用:

当取值为二选一时,用三元表达式很简单

例如:

当工作年限不满1年,工资小于8000,年终奖为工资倍数的1倍,否则是1.2倍

当工作年限不满2年,工资小于10000,年终奖为工资倍数的1.5倍,否则是1.7倍

当工作年限超过2年,工资小于13000,年终奖为工资倍数的2.3倍,否则是3倍

1
2
3
4
5
6
7
8
9
10
11
12
13
<script>
var year = parseInt(prompt("请输入你的工作年限:")), // ,逗号将下一个变量分隔开,而不再写var
salary = parseInt(prompt("请输入你的工资:")), // parseInt 取整,不是四舍五入
beishu;
if(year == 0){
beishu = salary < 8000 ? 1 : 1.2;
}else if(year == 1){
beishu = salary < 10000 ? 1.5 : 1.7;
}else{
beishu = salary < 13000 ? 2.3 : 3;
}
alert("你的年终奖为:" + salary * beishu + "元。");
</script>

U9keje.png

转换为if写法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script>
var year = parseInt(prompt("请输入你的工作年限:")), // ,逗号将下一个变量分隔开,而不再写var
salary = parseInt(prompt("请输入你的工资:")), // parseInt 取整,不是四舍五入
beishu;
if(year == 0){
if(salary < 8000){
beishu = 1;
}else{
beishu = 1.2;
}
}else if(year == 1){
if(salary < 10000){
beishu = 1.5;
}else{
beishu = 1.7;
}
}else{
if(salary < 13000){
beishu = 2.3;
}else{
beishu = 3;
}
}
alert("你的年终奖为:" + salary * beishu + "元。");
</script>

14.3 添加备用选项(当用户不输入内容,直接点确定)

备用选项:

备用选项一般使用逻辑运算符“或”来书写 || (应用或的短路语法)

1
2
3
4
<script>
var a = parseInt(prompt("请输入一个数字:")) || 0;
alert(a);
</script>

U9k14P.png

1
2
3
4
<script>
var a = parseInt(prompt("请输入一个数字:"));
alert(a);
</script>

U9kJgS.png

点击查看

本文标题:十四、三元表达式

文章作者:Mango

发布时间:2020年07月08日 - 21:46:12

最后更新:2020年07月08日 - 22:35:39

原始链接:https://mango185.github.io/post/7bdbd673.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------