JavaScript 判断条件如果是 false 怎么让他什么都不做呢?

2021-01-13 10:36:18 +08:00
 sudoy

JavaScript 的❓条件判断表达式里面,如果条件为假的时候,如何让它什么都不做呢?我试了以下,如果 : 后面什么都不写,浏览器会报错说 Uncaught SyntaxError: Unexpected token ';'

比如下面,如果 把 'World' 去掉,则会报错:

<!DOCTYPE html>
<html>
  <body>

    <div id="demo"></div>
    <script>
      let a = 10;
      demo = document.getElementById('demo');
      demo.innerText = a > 5 ? 'Hello' : 'World';
    </script>
    
</body>
</html>

也就是说下面的代码会报错。

<!DOCTYPE html>
<html>
  <body>

    <div id="demo"></div>
    <script>
      let a = 10;
      demo = document.getElementById('demo');
      demo.innerText = a > 5 ? 'Hello' : ;
    </script>
    
</body>
</html>
3437 次点击
所在节点    问与答
45 条回复
exceloo
2021-01-13 11:15:11 +08:00
如果你非要用三元,hmmm
demo.innerText = a > 5 ? 'Hello' : demo.innerText;
answeryou
2021-01-13 11:34:40 +08:00
```js
let a = 10;
if a<=5 return;
demo = document.getElementById('demo');
demo.innerText = 'Hello';
```
Marstin
2021-01-13 12:10:58 +08:00
a>5&&(demo.innerTex = 'hello')
ershierdu
2021-01-13 12:20:01 +08:00
感觉这个就是很典型的 if 逻辑,非要用其他方法很容易降低可读性…
reus
2021-01-13 12:26:39 +08:00
不用 if ?小心以后维护的人亲切祝福你
zqx
2021-01-13 12:36:28 +08:00
貌似很少有人在 js 中用 void
oneisall8955
2021-01-13 12:57:52 +08:00
demo.innerText = a > 5 ? 'Hello' : demo.innerText; 🐶
liuzhaowei55
2021-01-13 13:09:23 +08:00
@lemonnTr 楼主看三楼的写法,虽然写法很骚,但项目中很多地方都是这么用的。
AllenHua
2021-01-13 13:26:37 +08:00
a > 5 && demo.innerText='Hello'
niub
2021-01-13 13:30:58 +08:00
你这是三元表达式语法都不清楚鸭
lifesimple
2021-01-13 14:04:47 +08:00
a > 5 ? demo.innerText = 'Hello' : ''; 当做 if 来用?
wunonglin
2021-01-13 14:14:15 +08:00
有意义么。。。没 false 操作的时候要哪个 if 不就好了,不要为了用而用,看场景
msg7086
2021-01-13 14:23:28 +08:00
if 或者 and 都行。and/or 是有英文语义的(然后 /否则),对英语用户来说理解不成问题。
比如 a > 5 && (demo.innerText = 'Hello') || (window.alert()) 。
但是一般来说除非是特别适合这种英文语义的语句,否则建议一律写成 if 。
read() or die() 这种就比 if(!read()) die() 要易读一些。
cigarzh
2021-01-13 14:50:40 +08:00
大脑升级

屎山就是这么造出来的
oamu
2021-01-13 14:58:58 +08:00
@sudoy 别听他的 @cmdOptionKana,if 后面加大括号是个好习惯。
nbin2008
2021-01-13 15:26:52 +08:00
报错是因为语法不对呀
yaphets666
2021-01-13 15:31:20 +08:00
空字符串啊...

而且三元表达式 和 if 括号中的 true false 判断 在某些情况下是不一致的
我也记不清了
liantao
2021-01-13 16:18:14 +08:00
demo.innerText = a > 5 ? 'Hello' :console.log("test") ;
falcon05
2021-01-13 16:20:26 +08:00
这个帖子让我感觉智商受到了伤害
iapix
2021-01-13 16:51:15 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/744452

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX