【问题标题】:Unexpected '=' error in JSLintJSLint 中出现意外的“=”错误
【发布时间】: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(''));

这是什么意思?

【问题讨论】:

    标签: javascript jslint


    【解决方案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 有更奇怪的检查,例如:stackoverflow.com/q/3000276/251311 但在这种情况下,我 100% 同意 JSLint,我认为这只是一个糟糕的编码实践的例子
    猜你喜欢
    • 2012-02-29
    • 1970-01-01
    • 2012-08-13
    • 2016-03-01
    • 2011-03-01
    • 2015-07-30
    • 1970-01-01
    • 2015-02-09
    相关资源
    最近更新 更多