fe-interview icon indicating copy to clipboard operation
fe-interview copied to clipboard

[js] 第178天 你知道什么是三元表达式吗?“三元” 表示什么意思?使用三元表达式应该注意些什么问题?

Open haizhilin2013 opened this issue 5 years ago • 9 comments

第178天 你知道什么是三元表达式吗?“三元” 表示什么意思?使用三元表达式应该注意些什么问题?

haizhilin2013 avatar Oct 10 '19 20:10 haizhilin2013

三元表达式:(expr1) ? (expr2) : (expr3) 使用三元表达式应避免三元表达式嵌套三元表达式。

NicholasBaiYa avatar Oct 11 '19 01:10 NicholasBaiYa

三元指的是三个操作数;

xxf1996 avatar Oct 11 '19 01:10 xxf1996

判断条件 ?条件成立时执行的分支 : 条件不成立执行的分支

zhoupeng007 avatar Oct 11 '19 02:10 zhoupeng007

顾名思义,三元表达式就是三个元素组成的表达式 三元: 条件?真结果 :假结果 注意的问题??避免嵌套三元表达式

jsThin avatar Oct 11 '19 03:10 jsThin

@NicholasBaiYa @linhnogjie 再问下,为何要避免嵌套三元表达式呢?

haizhilin2013 avatar Oct 11 '19 03:10 haizhilin2013

一种代码规范吧,三元表达式嵌套过多看着过于头疼,一般公司的代码规范里都应该时不允许三元表达式嵌套的。如果需要多层嵌套完全可以用if之类的啊

zhoupeng007 avatar Oct 11 '19 03:10 zhoupeng007

避免嵌套三元表达式

条件运算符的优先级是从右向左,因此会从最右侧算起,如果最右侧有嵌套,会从嵌套内的最右侧算起,这样就容易出错

wwqin avatar Oct 11 '19 06:10 wwqin

@NicholasBaiYa @linhnogjie 再问下,为何要避免嵌套三元表达式呢?

首先容易出错,其次不符合编码规范,不利于他人阅读/理解。(代码不仅仅是写给机器跑的,还是写给人看的)

NicholasBaiYa avatar Oct 12 '19 01:10 NicholasBaiYa

三元运算符: a > 1 ? a : b

xiaoqiangz avatar Aug 05 '22 06:08 xiaoqiangz