【问题标题】:JSLint: Unexpected ES6 featureJSLint:意外的 ES6 功能
【发布时间】:2015-12-15 19:49:33
【问题描述】:

我从 jsllint.com 上的在线 linter 收到消息“意外的 ES6 功能”。

有问题的一行是这样的:

(t_1=(1+2));

但是暗示了哪些意想不到的 ES6 特性?

设置是

- Assume...   nodejs
- Tolerate... bitwise operators
- Tolerate... messy whitespace

文件以"use strict";开头

完整程序:

"use strict";
var RUNTIME=(require("/Users/soegaard/Dropbox/GitHub/urlang/runtime.js"));
var cons=RUNTIME.cons;
var NULL=RUNTIME.NULL;
var str=RUNTIME.str;
function displayln(v){return (console.log(v));}
function closure_p(v){return ((Array.isArray(v))&&(v[0]==="CLOS"));}
var result=0;
((function(t_1){
   (t_1=(1+2));
   (result=(displayln(t_1)));
   return result;
  })(undefined));

【问题讨论】:

  • 是的,它是一个函数参数。我已将完整程序添加到问题中。
  • 我猜这只是一个误报,但是为什么你需要将每个表达式都括在括号中呢?
  • @soegaard,那么您可以尝试通过 /*jslint es6: true */` 或通过一些 config/.rc 文件禁用 es6 警告
  • 也可以改用 eslint。
  • @FelixKling 这看起来是一个有趣的项目。而且我认为 jslint 更适合我的目的。谢谢!

标签: javascript


【解决方案1】:

它将括号中的表达式视为箭头函数。

除此之外,这些会使您的代码非常难以阅读。它们不是必需的,所以请丢弃它们。

【讨论】:

  • @soegaard 那是什么/谁写的?
  • 我正在编写一个输出 JavaScript 的编译器。
  • 查找箭头函数后:箭头函数的语法包含关键字=>,所以JSLint在这里有点猜测。
  • 所以,如果 Daniel 是对的,那么这是 JSLint 中的一个错误。
  • @soegaard JSLint 抱怨 ES6 功能,这是错误的;所以这是一个错误。我认为他们甚至没有考虑过是否应该将不需要的括号作为警告,而且我个人认为他们不应该打扰。
猜你喜欢
  • 2016-07-06
  • 2016-10-08
  • 2016-05-21
  • 2012-02-29
  • 2017-05-22
  • 1970-01-01
  • 2012-06-23
  • 2015-08-11
  • 2016-03-01
相关资源
最近更新 更多