草庐IT

javascript - 禁用 "use the function form of use strict"但保留 "Missing ' 使用严格声明“警告

我正在使用jslint来验证我的代码。我的所有页面上都有“严格使用”。如何禁用消息“使用'usestrict'的函数形式”但保留“缺少'usestrict'语句”警告,这样我就不会忘记将它放在新文件上?谢谢 最佳答案 根据Crockford'spost,您需要将所有内容包装在一个函数中...(function(){"usestrict";//therestofyourfilegoeshere...}());你也可以使用jshint相反,它有一个“globalstrict”选项,可以完全按照您的要求进行操作,而无需将所有内容都包装在一

javascript - 如何在网页中安全地使用 "eval"用户代码?

我正在开发一个网络应用程序来教授编程概念。网页有一些关于编程概念的文本,然后让用户在文本编辑器窗口中输入javascript代码以尝试回答编程问题。当用户点击“提交”时,我会分析他们输入的文本,看看他们是否已经解决了问题。例如,我要求他们“编写一个名为f的函数,将其参数加三”。以下是我正在做的分析用户文本的工作:在具有严格设置的文本上运行JSLint,尤其是在不假设浏览器或控制台功能的情况下。如果有任何错误,显示错误并停止。eval(usertext);遍历传递赋值的条件,eval(condition)。示例条件是"f(1)===4"。条件来自可信来源。显示通过/未通过条件。我的问题:

javascript - '_' 中的意外悬挂 '_gaq'

这个问题在这里已经有了答案:JSLintreports"Unexpecteddangling"characterinanunderscoreprefixedvariablename(4个答案)关闭9年前。我正在尝试使用JSLint验证我的GoogleAnalytics(分析)代码,但我收到了很多错误消息:代码:/*globaldocument*/var_gaq=_gaq||[];_gaq.push(['_setAccount','UA-24389816-1']);_gaq.push(['_trackPageview']);(function(){vars,ga=document.cre

javascript - 如何在javascript中定义一个新的全局函数

当一个函数参与闭包时,我在尝试使其成为全局函数时遇到了问题。在下面列出的代码中,我有一个匿名方法,它在名为window的新函数中定义了getNameField。(function(){functionalertError(msg){alert(msg);}window.getNameField=function(fieldId){try{if(!fieldId){fieldId='name';}returndocument.getElementById(fieldId);}catch(e){alertError(e);}};}());alert(getNameField().value

javascript - JSLint - 声明变量的问题

以下代码通过JSLint:varsGreeting='helloworld';switch(sGreeting){case'Helloworld!':vara='someavalue';break;case'Kamustamundo!':varb='somebvalue';break;case'SalutleMonde!':varc='somecvalue';break;default:break;}但是,一旦我将该代码放入函数中,JSLint就会提示我应该将...与前面的“var”语句结合起来。如果我遵循JSLint,我将定义可能的变量永远不需要使用。我应该如何处理这个问题?这是JS

javascript - 期望 ';' 而不是看到 ',' 。 - JSLint 多变量设置

大约从2016年1月14日起,JSLint开始提示var或let声明每个声明有多个变量,并创建了一个新指令,multivar忽略了这个新的“问题”。这是一个非常重要的变化,因为如果您确实在同一个代码块中有两个var,早期版本会提示。也就是说,从今天(2016年1月18日)开始,此代码现在中断JSLint:/*jslintwhite:true,browser:true,devel:true*/functiona(b){"usestrict";varc,d;//报告的错误是,Expected';'而是看到了','.行varc,d;“正确”的修复显然是这样的:/*jslintwhite:tr

javascript - 定义 JavaScript 函数

在我的项目中(仅限浏览器上下文)我想使用JS代码质量工具。我已经尝试了jslint和eslint。我希望linter帮助我使我的代码干净、清晰、防错并提高其整体质量。我不想做的是我不想写一些肮脏的hack或使用不好的做法只是为了让linters开心。我只关心一个问题。他们都报告了一个问题,即我在定义函数之前就在使用它。显然,在下面的代码片段中,bar在定义之前不会被调用。functionfoo(){bar();}functionbar(){}foo();在这个最简单的场景中,我可以将bar移到foo之前。但有些情况下这是不可能的。第一个函数使用第二个,第二个使用第三个,第三个使用第一个

javascript - 标签 "javascript:"会导致任何问题吗?

当JSLint和JSHint遇到标识符与以下正则表达式匹配的标记语句时,它们都会发出警告:/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i例如,以下代码片段从JSLint生成一个“JavaScriptURL”警告,并从JSHint生成一个“Label'javascript'lookslikeajavascripturl”警告(函数包装器是不必要的,但JSLint不喜欢带标签的语句不是功能范围的,并引发不同的警告):functionexample(x,y){javascript:while(x){whi

javascript - window.location.href = window.location.href 和 JSLint

如果使用window.location.href=window.location.href;重新加载页面(不重新发布)并不是一个坏习惯,我们应该如何看待JSLint的“奇怪的分配”投诉?EDITwindow.location.reload()当您不想再次POST表单数据时不适合。在某些浏览器中,它会引发“重新发送表单数据?”最好在不需要时避免。更新我做了一些非常简短的测试并发现:Mac上的Chrome12和Safari5.0.5不会使用.reload()重新发布Mac上的FF2.0、3.6、4.0、5.0通过.reload()、.reload(true)和.reload(false)X

javascript - 你能给我一个 "Bad line breaking before ' ?'"的例子吗?

我收到此错误消息,我不喜欢。Badlinebreakingbefore'?'.我觉得vars=(a===b)?'one':'two';看起来更好。克罗克福德说:Semicoloninsertioncanmaskcopy/pasteerrors.Ifyoualwaysbreaklinesafteroperators,thenJSLintcandoabetterjoboffindingthoseerrors.谁能给我举一两个例子,说明他所指的那种复制/粘贴错误?更新:vars=(a===b)?'one':'two';看起来比vars;if(a===b){s='one';}else{s='t