JSLint 中出现意外的“=”错误

Posted

技术标签:

【中文标题】JSLint 中出现意外的“=”错误【英文标题】:Unexpected '=' error in JSLint 【发布时间】:2012-10-21 15:37:31 【问题描述】:

我在一个 zepto 扩展 js 文件上使用了 JSLint

它抛出了错误:

Unexpected '='. line 33 character 37

第 33 行:

return (document.cookie = [encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : ''].join(''));

这是什么意思?

【问题讨论】:

【参考方案1】:

将其拆分为 2 个语句:

document.cookie = [encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : ''].join('');
return document.cookie;

通常您不会在 return 表达式中使用赋值。

【讨论】:

@zerkms.. 为什么会有问题.. ??值先赋值后右返回 @Sushanth --: 从什么角度看问题? JSLint 会向您提示潜在问题不良做法。在这种情况下,它可能是:混淆=== 的问题,或者只是误用赋值 我知道这是一个不好的做法,但想知道这是否只是从 JSLint 的角度来看。因为通常正确的值将由函数返回 @Sushanth --: 嗯,JSLint 有更奇怪的检查,例如:***.com/q/3000276/251311 但在这种情况下,我 100% 同意 JSLint,我认为这只是一个糟糕的编码实践的例子

以上是关于JSLint 中出现意外的“=”错误的主要内容,如果未能解决你的问题,请参考以下文章

JSLint 的“语句位置出现意外的表达式‘i’”是啥意思?

无法在 React.js 中读取 json,出现意外的令牌错误

JSLint 错误:意外的“这个”

JsLint'超出范围'错误

JSLint:意外的“为”。意外的'var'

禁止显示“预期为 '===' 而看到的是 '=='。” jslint中的错误