在这种情况下,JSLint的“Bad Escapement”是什么意思?

时间:2010-04-08 12:46:35

标签: javascript jslint

我认为“糟糕的擒纵机构”代表用斜线逃避的错误用途。

为什么JSLint会在3d线上显示此函数中的消息(for ...)?

  function splitTags(commaSeparated) {
    var tagArray = commaSeparated.split(','); 
    for (var i=(tagArray.length) - 1; i>=0; i = i - 1 ){
      tagArray[i] = f.trim(tagArray[i]);
    }    
    return tagArray;
  }
  f.splitTags=splitTags;

编辑:我将“i--”更改为“i = i-1”并在上面发布了更改后的版本。

Lint抱怨第30个字符,这是第一个减号。

Edit2:此更改后,它不会再抱怨了。有效的新版本:

  function splitTags(commaSeparated) {
    var tagArray = commaSeparated.split(',');
    var startWith = tagArray.length - 1; 
    for (var i=startWith; i>=0; i = i - 1 ){
      tagArray[i] = f.trim(tagArray[i]);
    }    
    return tagArray;
  }
  f.splitTags=splitTags;

奇怪。我实际上正在使用JSLint multi:http://ajaxian.com/archives/jslint-multi

所以这还没有解决,但我有一个解决方法。但是获得真正的答案会很高兴,我仍然有许多这样的代码部分。

2 个答案:

答案 0 :(得分:0)

来自JSLint page

JSLint期望+ +后面不会出现+或+,并且 - 不会后跟 - 或 - 。错位的空间可以将+ +转换成++,这是一个很难看到的错误。使用parens以避免混淆..

答案 1 :(得分:0)

我想从我在问题编辑中发布的解决方法中,JSLint multi根本不喜欢 for 行中的length关键字。

不要在那里使用 length ,而是在之前的行中计算并使用变量。

使JSLint multi不要抱怨的规则。