首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在条件运算符中运行代码安全吗?

在条件运算符中运行代码安全吗?
EN

Stack Overflow用户
提问于 2012-01-06 04:23:41
回答 4查看 1.3K关注 0票数 4

我经常看到和使用这样的代码:

代码语言:javascript
复制
var myvar = (1 < 2) ? 3 : 4 ; //if 1 < 2 then myvar = 3, else = 4

但我最近刚刚看到一个正在执行代码的代码,就像某种if(){}else{}的替代品。

示例:

代码语言:javascript
复制
(1 < 2) ? alert("example1") : alert("example2");

我的第一个想法是,“哇,这就像缩短了6-7个字符”,“无限的可能性”或“这让我的一天”。

我的问题:

  • 这个东西没有错误,使用安全吗?(比如,里面有很多代码,还有嵌套的东西)

现在,我将继续以正常的方式使用它,我担心如果我开始使用它来执行代码片段可能无法工作。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-06 04:28:44

也有一些例外。你不能用:

  • break
  • continue
  • 任何像ifforwhiledotry这样的块

例如。更重要的是,它会扰乱你的操作顺序:

代码语言:javascript
复制
x < 3 ? l = true : r = true; // Syntax error, = has lower precedence than ?:

但这不是不去做的原因,而是因为它很丑。哪一个对你来说更清楚,这个:

代码语言:javascript
复制
if(i > 5) {
    alert('One');
} else {
    alert('Two');
}

代码语言:javascript
复制
i > 5 ? alert('One') : alert('Two');

?不太对,是吗?实际上,保存字符从来都不是做任何事情的理由;否则就不会有注释或空格。一个好的小型机,如谷歌关闭编译器,将自动转换这些为您在可能时,还有很多其他地方可以保存。最后,它只是你觉得最方便和最可读的东西。

另外,如果您最终需要breakcontinue等,那么它将是相当不一致和不吸引人的代码。

票数 4
EN

Stack Overflow用户

发布于 2012-01-06 04:26:08

这个东西没有错误,使用安全吗?(比如,里面有很多代码,还有嵌套的东西)

是。但是,它中的代码越多,它的可读性就越低。

我更喜欢用它(条件运算符)来做简短、简洁的陈述。为了提高可读性和可维护性,任何更复杂的东西都值得使用if/else

票数 7
EN

Stack Overflow用户

发布于 2012-01-06 04:27:41

你指的是三元操作符。它通常用于使用以下简单字符串设置变量:

代码语言:javascript
复制
var phone = old ? "blackberry" : "iPhone"

比使用if简单得多:

代码语言:javascript
复制
var phone = "iphone"
if (old) {
    phone = "blackberry"
}

在这种情况下,它很好,在您描述的示例中,一旦它开始变得令人困惑,否则我肯定不会推荐它!

你的例子可能会变得更好:

代码语言:javascript
复制
var msg = 1 < 2 ? "alert1" : "alert2";
alert(msg);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8753338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档