JSHint - ^'简明的方法'在ES6

时间:2016-05-11 20:15:50

标签: javascript jquery gruntjs ecmascript-6 jshint

我试图使用AJAX提交一个简单的表单。我使用grunt作为任务运行器来编译我的JS文件等等。

这是我到目前为止所做的。

$("form").submit(function(event) {
    event.preventDefault();

    var formData = {
        $("#username").val(),
        $("#password").val()
    };

    $.ajax({
        url: 'xxx',
        type: 'POST',
        dataType: 'json',
        data: formData,
        encode: true
    })
    .done(function(data) {
        console.log(data);

    })
});

我的疑问是关于任务即将运行时的JShint错误

  

$("#用户名&#34)。VAL(),                        ^'简明的方法'可以在ES6(使用esnext选项)或Mozilla JS扩展(使用moz)中使用。

这是我的gruntfile(jshint任务)

jshint: {
        ignore_warning: {
            options: {
                '-W099': true,
                /*'-W041': true,*/
                '-W044': true,
                '-W033': true,
                '-W043': true,
                '-W049': true,
                '-W004': true,
                '-W065': true,
                '-W083': true, // Corrigir futuramente
            },  
            src: ['public/_assets/src/js/modules/*.js'],
        }
    }

这究竟是什么意思?我该如何解决这个错误?

谢谢!

1 个答案:

答案 0 :(得分:11)

formData正文缺少名称:

var formData = {
    $("#username").val(),
    $("#password").val()
};

任何类型的短手对象文字,无论是计算名称还是内联方法,都是ES6功能。

您几乎肯定只需要将名称添加到您已经获得的值中:

var formData = {
    username: $("#username").val(),
    password: $("#password").val()
};

使用ES6,您可以在对象文字中声明方法,如下所示:

var formDataFetch = {
  username() {
    return $("#username").val()
  }
};

(有关详细信息,请参阅this blog post

这似乎是解析器认为你的对象包含的内容。