javascript - 赋值表达式的标准格式是什么?

标签 javascript standards jslint

我在 JavaScript 中有以下函数,当通过 JSLint 运行它时,它对我大喊大叫,正如我所说。

function getPos(event, element) {
    var x = event.clientX,
        y = event.clientY,
        currentElement = element;

    do {
        x -= currentElement.offsetLeft - currentElement.scrollLeft;
        y -= currentElement.offsetTop - currentElement.scrollTop;
    } while ((currentElement = currentElement.offsetParent));

    return {
        x: x,
        y: y
    };
}

特别是关于 while 循环中的内联赋值表达式。我认为双括号是表达“我期望从赋值表达式返回的值被类型转换为条件的 Boolean”的标准方式。 JSLint 似乎不同意,即使我启用了“赋值表达式”。然后我尝试在前面添加 !!,JSLint 提示说这是“令人困惑的用法”。所以我的问题是,格式化它的正确方法是什么?

编辑:“这个”是指内联赋值表达式。我的问题的目的是澄清该特定行的可接受标准是什么,如果真的想使用它,虽然我同意 thefourtheye 的答案是编写函数的最正确方法,但它不是答案我问的问题。

最佳答案

根据 this article ,对于 JSHint、ESHint 和 JSLint(从 2013 年 7 月之前开始),您可以将其强制为这样的条件:

do {
  // ...
} while ((currentElement = currentElement.offsetParent) !== null);

对于较新版本的 JSLint,你运气不好,如果你重视全绿色,则需要将你的作业分开。

关于javascript - 赋值表达式的标准格式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27873663/

相关文章:

javascript - 设置 Google Analytics 自定义维度值而不发送额外的综合浏览量

javascript - 我应该用 JavaScript 还是服务器端语言来设置 cookie?

javascript - 函数未显示正确结果

html - 为什么在 HTML/XHTML Strict 中允许输入大小属性?

javascript - 为什么我的 jquery 会重置?

testing - OpenID 提供商的合规性测试

javascript - 为什么 jQuery 不使用 JSDoc?

javascript - JSLint 不喜欢 .bind(this),但没有它,就无法访​​问 this.obj

javascript - 括号中的 JSLint 警告如何修复运行 javascript 的问题?

javascript - 括号中的 JSLint : Is there a way to use variables defined in other files?