JS if/else速记的快速翻译
Quick translation of JS if/else shorthand?
如果我能看到这些if/else语句写得很长,这个旋转木马的工作方式会变得更容易理解。据我所知,if/else简写为:
isThisTrue? thenDoThis: ifNotDoThis
但当添加更多的条件词时,我有点困惑。任何帮助都将不胜感激。
n.attr("id")=="right"?currentIndex==$("#slider li").size()-1?currentIndex=0:currentIndex++:n.attr("id")=="left"?currentIndex==0?currentIndex=$("#slider li").size()-1:currentIndex--:currentIndex=n.attr("data-position");
SetTheme:function(n){n.hasClass("dark")?($("#logo").addClass("dark"),$("#ips").addClass("dark"),$("#nav").addClass("dark"), $("#but-links").addClass("dark"),$("#but-search").addClass("dark")):n.hasClass("light")&&($("#logo").removeClass("dark"),$("#ips").removeClass("dark"), $("#nav").removeClass("dark"), $("#but-links").removeClass("dark"), $("#but-search").removeClass("dark"))}
无论你做什么,都不要这样写代码,如果你发现代码是这样写的,就修复它。你会被它弄糊涂,因为它很令人困惑。不是你。:-)
但规则是,条件运算符的操作数是从左到右的贪婪。让我们提醒自己条件运算符的三个操作数(正如您在问题中所做的那样):
operand1 ? operand2 : operand3
因此,由于操作数是贪婪的,这意味着,例如:
val = true ? true ? "a" : "b" : "c"; // is "a"
val = false ? true ? "a" : "b" : "c"; // is "c"
// ^ ^^^^^^^^^^^^^^^^
// | ' /
// | ' /
// | +----------+--- this is operand2 to...
// +------------------ this conditional operator
因为它们相当于
val = true ? (true ? "a" : "b") : ("c"); // is "a"
val = false ? (true ? "a" : "b") : ("c"); // is "c"
- 如何将此JS翻译成Angular2
- Angular JS:翻译带有大量文本的静态html页面
- 为什么可以't I翻译JS画布图像
- 翻译是从哪里来的?Java servlet、tomcat和Ext Js Sencha应用程序
- 如何在多语言网站中翻译JS中的单词
- backbone.js的本地化和翻译
- node.js请求编码(谷歌翻译)
- 协助翻译JS到CLJS
- Rails I18n-js:缺少翻译
- Symfony2和Angular.JS之间共享的翻译
- 在快速 JS 中使用全局翻译对象
- 如何在Angular.js中按翻译内容排序ng重复
- Three.JS翻译目标
- 使用“;transform:翻译“;与JS只工作一次
- 将一行JS翻译成C#(Unity)
- 一种用Poedit翻译JS的方法
- 必应翻译API与JavaScript和Node.js
- 使用JS和HTML中的函数逐个拆分输入并逐个翻译输入
- 翻译rails应用程序中js中的I18n标记
- Gulp任务翻译JS