Javascript 如何在JSLint中禁用奇怪的条件检查?
我有一些代码可以将键盘键映射到不同长度的代码块,从简单的Javascript 如何在JSLint中禁用奇怪的条件检查?,javascript,jslint,Javascript,Jslint,我有一些代码可以将键盘键映射到不同长度的代码块,从简单的return false,到主要的2-3行代码片段,再到复杂的函数: var k = window.event.keycode; switch(true){ case(k === 9): // break; case(k === 13): // break; case(k === 38 && selectedRecord > 1):
return false
,到主要的2-3行代码片段,再到复杂的函数:
var k = window.event.keycode;
switch(true){
case(k === 9):
//
break;
case(k === 13):
//
break;
case(k === 38 && selectedRecord > 1):
//
break;
}
我不希望创建一个包含函数列表的对象,并以这种方式映射它,因为它们主要是短代码块,并且存在奇怪的复杂情况
是否有一个选项可以禁用检查开关(true)
(与其他检查一样)
相关,但不是重复:两个想法:
1) 您可以通过在文件顶部添加以下注释来使linter高兴:
/*jshint eqeqeq:true*/
,也就是说,我仍然得到一个这个“开关”应该是一个“if”。
警告。可能jslint/jshint不会忽略这种构造
2) 我谨建议您借此机会清理一些奇怪的代码,并将开关重写如下,而不是使用linter选项:
var k = window.event.keycode;
if(k === 9) {
//
} else if(k === 13) {
//
} else if(k === 38 && selectedRecord > 1) {
//
}
两个想法:
1) 您可以通过在文件顶部添加以下注释来使linter高兴:/*jshint eqeqeq:true*/
,也就是说,我仍然得到一个这个“开关”应该是一个“if”。
警告。可能jslint/jshint不会忽略这种构造
2) 我谨建议您借此机会清理一些奇怪的代码,并将开关重写如下,而不是使用linter选项:
var k = window.event.keycode;
if(k === 9) {
//
} else if(k === 13) {
//
} else if(k === 38 && selectedRecord > 1) {
//
}
为什么要使用switch(true)
而一系列if
/else
块是合适的呢?@EdCottrell老实说,这是个好问题-遗留代码。为什么不直接执行switch(k)
和案例9:
,案例11:
等等?@RahilWazir处理类似案例这样的奇怪案例(k===38&&selectedRecord>1)
。我将把开关切换到if/else
s-此应用程序的每个屏幕都有一个,用于映射关键点;前面的任务很有趣!我将把这个问题留在这里,因为可能有一个选项可以禁用签入JSLint。为什么要使用开关(true)
如果
/或者
一系列的块在哪里合适?@EdCottrell老实说,这是一个好问题-遗留代码。你为什么不做切换(k)
和案例9:
,案例11:
等等?@RahilWazir处理像案例(k==38&&selectedRecord>1)这样的奇怪案例
。我将把开关切换到if/else
s-此应用程序的每个屏幕都有一个,用于映射键;前面的任务很有趣!我将把这个问题留在这里,因为可能有一个选项可以禁用检入JSLint。/*jshint eqeq:true*/
可能用于jshint,而不是JSLint,但是很好的建议!没错,虽然我只是得了“怪病”来自JSHint的警告。嗯,我正在使用JSLint记事本++插件;可能有问题。谢谢你的回答!是的,事实上,该插件正是我刚才测试这个的方式。无论如何,很高兴能提供帮助!/*JSHint eqeqeq:true*/
可能是针对JSHint的,而不是JSLint,但其他方面的建议都很好!没错,尽管我只得到了来自JSHint的“怪异条件”警告。嗯,我使用的是JSLint记事本++插件;可能有问题。谢谢你的回答Ed!是的,事实上,该插件正是我刚刚测试这个的方式。无论如何,很高兴能帮上忙!