- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在 Javascript 中,如果 if
表达式后面没有大括号,则将以下语句放在 if
block 中。也就是说,
if(foo)
bar();
baz();
相当于
if(foo) {
bar();
}
baz();
Douglas Crockford 建议不要使用第一个,因为如果程序员试图在没有大括号的情况下向 if
block 添加语句,它会造成混淆并且会导致难以追踪的错误。出于这个原因,如果您使用第一种形式,JsLint 会报错。
我一直在使用它,我觉得这不是问题,前提是您将该语句与 if
语句放在同一行,如下所示:
if(foo) bar();
baz();
这在视觉上比完整的括号形式更简洁,而且我从来没有对它感到困惑。为了让我可以通过 JsLint 而没有那么多视觉噪音,我有时会使用依赖于运算符短路的不那么惯用的形式,如下所示:
foo && bar();
baz();
你们可能都在等我快点问问题,那么就这样吧:如果格式正确,不在单行条件语句中使用大括号通常被认为是不好的做法吗?为什么? JsLint 是否有合理的理由提示它?
最佳答案
JSLint 检查您的代码是否为 Crockford 风格。它有一个分支叫做 JSHint这是可定制的,使用起来更不烦人。
这是一个验证良好的代码(除了可能很快会修复的 tiny bug :)
/*jshint curly: false */
var a = true;
function work() {
console.log('work');
}
if (a) work();
关于javascript - 围绕 If block 的 JSLint 大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6970873/
我有以下功能。其作用是过滤子域中允许的字符。在 JSLint 中我收到以下错误。有什么办法可以做到这一点而不 JSLint 显示错误。我知道我可以忽略 JSLint 设置中的错误,但是有没有其他方法可
我在 jsLint 中收到以下错误: 'document' was used before it was defined. 导致错误的行: document.cookie = name + "=" +
我使用 hallettj / jslint.vim在 Ubuntu 12.04 上,一切正常。但在 Windows 7(x64) 上,它显示错误: Error detected while proce
我遇到了一些麻烦。我把电脑留在家里去了我的避暑别墅几天,当我回到家并尝试将文件保存在 Sublime Text 2 中时,我收到此错误: module.js:340 throw err;
我们刚刚开始使用JSHint / JSLint,并且正在寻找一些“最佳实践”类型设置,这些设置被广泛认为是严格性和实用主义之间的良好折衷。我在互联网上看过一眼,却找不到任何东西。 我意识到这完全取决于
我有一个通过 JSLint 的巨大脚本(包括避免所有不好的部分)。除了一段,这是一些非常复杂的混淆代码,嵌入在更大的上下文中。 JSLint 对此部分产生了相当多的提示,我想为那段代码选择性地禁用它。
我查看了许多关于通过本地包装函数来消除 jslint 中(必要的)未使用参数错误的 stackoverflow 答案,如下所示: /*jslint unparam: true*/ //my funct
使用 jslint 分析文件时,是否可以使用在另一个 js 文件中声明的全局变量? . 目前我必须在标题中声明我所有的全局变量,但是这真的很慢而且不实用。 /* global console, myg
我正在尝试使 makeprg 和 errorformat 与 VIM 和 jslint 一起使用,但似乎无法为我的生活提供正确的错误格式...我正在使用 nodejs 版本的 jslint,它产生如下
我通过 JSLint 运行了以下命令: $(document).ready(function() { /* Add paragraph on page load */
在注释中使用“不安全字符”(例如变音符)时,出现以下错误: This character may get silently deleted by one or more browsers. 有什么方法
在我的 Angular 应用程序中,我使用循环在对象中查找最接近给定数字的值并返回其键。 例如,我想要最接近 0.5 的值: for (var j in nums) { if (0.5 >
我想使用 JSLint ,但我对可以访问我未经过滤的源代码的工具持谨慎态度。是否有离线版本,或者是否有其他类似的工具可以对 JavaScript 离线进行“lint 错误检查”? 编辑:一个带有 GU
我的代码是: name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 我得到: Unexpected '\'. 为什么我会得到这个?我
JSLint 仅适用于一个 JavaScript 文件。最近,我开始将我的程序分成几个部分。 我不想每次使用 JSLint 检查代码时都将这些片段串起来。使用 JSLint 处理多个文件的标准解决方案
我总是通过向数字添加空字符串来将数字转换为字符串: var string = 1 + ''; 但是,JSLint 提示此方法预期为“String”,而看到了“'''”。,而且它看起来确实有点难看。 有
我正在使用 JSLint 来检查以下代码: 'use strict'; var mathService = { add: add, subtract: subtract, multi
所以我用这个检查了我的javascript:http://www.jslint.com/ 如果我不在 { } 之间包装 IF/FOR 语句,我会收到如下“错误”: Problem at line 15
所以我在最新版本的 jQuery 上运行 JSLint,可在 bit.ly/jqsource 获取。 。我已经尽可能宽松地进行了测试,但仍然会出现错误。其中之一是第 327 行的“使用命名参数”: 目
我根据 JSLint 标准(不包括几个选项)进行编码,我认为将其用于我的浏览器内单元测试可能是个好主意,这样我就不会意外地提交任何未通过它的内容.我使用的是 QUnit,但同样适用于任何浏览器内测试框
我是一名优秀的程序员,十分优秀!