如果可以进行语句重构,则是简写
is shorthand if statment refactoring possible?
有没有一种方法可以简化if语句?
对于
if(window.scrollY > 0 ){
alert("yes")
}
无法使用此速记
window.scrollY > 0 ? alert("yes")
而这将工作良好
window.scrollY > 0 ? alert("yes") : alert("no")
有没有一种方法可以在没有: alert("no")
部分的情况下写速记?
您可以尝试使用:
window.scrollY > 0 && alert("yes");
只需为不需要的情况设置null
:
window.scrollY > 0 ? alert("yes") : null;
或者,正如@hsz所指出的,您可以利用JavaScript布尔表达式的短路特性,并使用:
window.scrollY > 0 && alert("Yes");
// or even take advantage of the fact that zero coerces to false
window.scrollY && alert("Yes");
然而,(在我看来)这些并不像简单地使用一行(braceles)if
:那样可读
if(window.scrollY > 0) alert("yes");
您可以用0
替换alert("no")
,因为三元运算符总是必须有一个"false"参数:
prompt('value') > 0 ? alert("yes") : 0 ;
不过,这有点难看。
一个更好的选择是只在语句为true时执行函数:
prompt('value') > 0 && alert("yes");
如果表达式的右侧是真的,则&&
将只计算表达式的右侧。
(尝试在提示中输入1
和0
)
这:
window.scrollY > 0 ? alert("yes") : alert("no");
称为CCD_ 9。它通常用于确定语句的返回值。
你可以通过这样的方式实现你的意思:
(window.scrollY > 0) && alert("yes");
无论如何,它绝不比普通的if/else
更好。它的可读性再好不过了。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何在ReactJS JSX中执行嵌套的if-else语句
- JSON重构(合并内容)与javascript
- 自动修复”;语句前缺少分号“;
- 使用递归、Ramda.js和无点样式重构字符串的getPermutations()
- 如何在 API 调用后和 if 语句中启用提交按钮
- 是“;x==a||b”;以及“;x==a||x==b”;JavaScript中的等效语句
- 带有多个elseif的Javascript if语句
- 这个条件语句的逻辑有问题
- 如何“;过滤器”;或者以其他方式重构该数据
- Sharepoint JScript if语句未执行
- 为什么继续;语句冻结浏览器
- 我可以用javascript中的switch或case语句重构if-else吗
- 如果可以进行语句重构,则是简写
- 如何重构我的条件语句
- 在JavaScript中重构嵌套if语句
- 我该如何重构这堆if语句
- Javascript if 语句由于数据错误而需要重构
- 重构if/else语句,时间跨度在两年之间
- 编程标准&重构try/catch语句