JS三元运算符
三元运算是很有意思的,但在具体了解它之前,先看看 if ... else ... 语句。我们假定现在在斟酌如何给 a 和 b 两位员工发红包,我们的依据是贡献的大小:如果 a 大于 b,给 a 加钱钱,500块吧;反之,给 b 加钱钱,当然也是加500块。
财务总监用 JS 解决这个问题:
var a = 2.1; // 员工 a 的贡献系数
var b = 2.1; // 员工 b 的贡献系数
var a_hb = 2000; //员工a的基础红包
var b_hb = 2000; //员工b的基础红包
if (a>b) {
a_hb = a_hb + 500;
}else{
b_hb = b_hb + 500;
}
用人话解释 if ... else ...代码:如果 a>b 成立,则 a_hb 的值在自身值基础上加500,反之,如果 a>b 不成立,则 b_hb 的值在自身值基础上加500。也就是说,谁的贡献系数大,这500元钱就给谁。相等的情形呢?归b,这是题外话不提。
if ... else ... 语句容易阅读,也方便代码修改,但略显啰嗦,有一种替代的方法来表达,很简洁,它就是三元运算符。试看:
a>b ? a_hb = a_hb + 500 : b_hb = b_hb + 500;
三元运算符用一个问号和一个冒号组成表达式。问号之前是条件语句,问号就是问这个条件是否成立,如果成立,执行问号后面的语句,反之如果不成立,就执行冒号后面的语句。一行代码完成人家五行代码的工作,太精巧了。
三元运算符的作用在于让代码更简洁,仅此而已。
这个判断语句有意思,让我想到Excel也有类似的功能{:4_187:} 这个只有大于号么,有没有大于等于号≥? var a = 2.1; 为什么是2.1 这个数字有特定含义么? 红影 发表于 2022-1-15 14:54
var a = 2.1; 为什么是2.1 这个数字有特定含义么?
2.1 不是特定的,你想给它赋值多少就多少 红影 发表于 2022-1-15 14:53
这个只有大于号么,有没有大于等于号≥?
可以有。但不是这样表达,JS里要这样:
a >= b 红影 发表于 2022-1-15 14:51
这个判断语句有意思,让我想到Excel也有类似的功能
对。很多高端的应用都离不开判断,可以说判断是程序的基本。 马黑黑 发表于 2022-1-15 15:44
2.1 不是特定的,你想给它赋值多少就多少
但是必须有这个赋值的过程,是么?可以是字母或别的什么符号么。
马黑黑 发表于 2022-1-15 15:45
可以有。但不是这样表达,JS里要这样:
a >= b
哦哦对,你介绍过大于等于符号的,我前面忘记了。
用了这个符合,当两者相等的时候,还是加给a的吧。 马黑黑 发表于 2022-1-15 15:46
对。很多高端的应用都离不开判断,可以说判断是程序的基本。
能利用计算机自身强大计算功能的语句都特别好。 红影 发表于 2022-1-15 20:18
哦哦对,你介绍过大于等于符号的,我前面忘记了。
用了这个符合,当两者相等的时候,还是加给a的吧。
是的,条件成立嘛 红影 发表于 2022-1-15 20:17
但是必须有这个赋值的过程,是么?可以是字母或别的什么符号么。
声明是不赋值也行,后面运算中有赋值就好,不然返回未定义项会报错。根据需要来,这里给它们赋值是为了作比较。 三元运算符的作用在于让代码更简洁,仅此而已。
黑黑一句话,小辣椒要想半天的{:4_203:} 马黑黑 发表于 2022-1-15 20:54
是的,条件成立嘛
感觉这个三元运算是个很聪明的设计,代码看起来更简洁高效。 马黑黑 发表于 2022-1-15 20:55
声明是不赋值也行,后面运算中有赋值就好,不然返回未定义项会报错。根据需要来,这里给它们赋值是为了作 ...
“返回未定义项会报错”。
嗯,记下了。 红影 发表于 2022-1-15 23:59
“返回未定义项会报错”。
嗯,记下了。
JS很娇嫩 红影 发表于 2022-1-15 23:58
感觉这个三元运算是个很聪明的设计,代码看起来更简洁高效。
我再PHP中大量使用,在JS中用的少 小辣椒 发表于 2022-1-15 22:28
三元运算符的作用在于让代码更简洁,仅此而已。
黑黑一句话,小辣椒要想半天的
你可以先不理这些 这个得好好学习了。 马黑黑 发表于 2022-1-16 08:22
JS很娇嫩
这个形容词用得有趣{:4_189:}
页:
[1]
2