JS-如果是语句运算符,这是怎么编译的
JS - If statement operator, how does this even compile?
我正在阅读一些javascript,并试图将其中的部分用于我在Java(android)中进行的类似构建,我遇到了一个if语句,我似乎无法理解它在javascript中是如何兼容的。
// Decrementing
if (mod < 0) {
// Check tree rank requirements
for (var i in state[tree])
if (i != index)
// Figure out tier, multiply by 4 to get req points
if (state[tree][i] > 0 &&
// Calculate points in this tree up to this tier, and
// subtract one if we're removing from this portion
masteryPointReq(tree, i) > treePoints(tree, masteryTier(tree, i)) - (masteryTier(tree, index) < masteryTier(tree, i)))
return false;
}
更具体地说,我不理解的部分是第三个if语句。
if (state[tree][i] > 0 &&
// Calculate points in this tree up to this tier, and
// subtract one if we're removing from this portion
masteryPointReq(tree, i) > treePoints(tree, masteryTier(tree, i)) - (masteryTier(tree, index) < masteryTier(tree, i)))
return false;
"-"运算符在这方面做了什么?它如何不破坏if语句?我对Javascript的了解仅限于一点点修补,所以不多。
它的总和为一个整数
var a = 3;
var b = 4;
console.log(5 - (a > b));// a > b == false
// 5
console.log(5 - (b > a));// b > a == true
// 4
false=0,true=1因此评论道:
// subtract **one** if we're removing from this portion
第三个if语句也是如何在JavaScript中编写条件的一种可能方式。如果应该执行的代码是一条指令,则不需要大括号。但是,如果您计划从jshint或jslint传递代码,那么从某种角度来看,这不是一种很好的风格。
相关文章:
- 如果 a 为 false,则 if(a) === if(false)
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色
- 如果href包含X,请更改href
- 如果localstorage为空,则显示欢迎消息
- 点击后隐藏潜水?(但如果Div是一面旗帜呢?)
- 如果元素's的ID以数字开头
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- Jquery模板,如果xx&&如果yy
- AngularJS指令出错-无法读取属性'编译'的未定义
- 如果值为空,如何设置输入的默认值?jQuery
- 如果选中了多个复选框,如何添加事件
- 如何检查元素的内容是否为空,如果为空,请在jquery中删除该元素
- JS-如果是语句运算符,这是怎么编译的
- 如果在Handlebars.js中预编译自定义帮助程序,如何注册自定义帮助程序
- 如果“需求”没有定义,我该怎么办?编译后的TypeScript错误
- AngularJS指令'如果指令存在于ng-if内部,则s编译函数未被执行