2016-12-05 130 views
1

我一直在一个新网站上与我的老板一起工作。他使用的Visual Studio 2013,我使用Visual Studio 2015年,出于某种原因,JavaScript的“类”的关键字显示为他的Visual Studio复制错误,但会显示在我的身边罚款:为什么JavaScript“class”关键字在VS2013中显示为错误

Error on my boss's VS2013 instance

这不应该打破网站,但它似乎与2013年混乱显示上面的屏幕截图。

为什么在VS2013上发生这种情况?重申 - 这不会发生在我的2015版上。

+0

错误列表窗口报告是什么? – thgaskell

+0

简单的回答:VS2013不支持class关键字。较老的JavaScript规范,ES3(ES 1999)保留了“class”关键字,因此使用class关键字被认为是错误。 ES6规范最终指定了class关键字,因此它不再是错误,而是适当的关键字。 – slebetman

回答

2

Visual Studio 2013根本不支持更新版本的EcmaScript。请记住,Visual Studio 2013差不多四年了,关键字class的当前定义在EcmaScript 2015中,这是在Visual Studio 2013发布之后提出的。在EcmaScript 2015之前,class关键字被保留,但被认为是语法错误,所以Visual Studio实际上是通过将其标记为错误来做正确的事情。

下面是一些更多的信息,可以帮助您在Visual Studio 2013弄的EcmaScript 6支持:

另外,如果你的老板是不是调试JavaScript代码使用Visual Studio (或编写任何),他们可以简单地关闭JavaScript语法检查。

+0

这就是我的想法。我只能自己确认这是事实。我已经向我的老板解释了这一点。似乎我们正在消除类:(并用普通的旧函数替换它们,但是 - 你知道的越多:) – Eon

+0

不,不要废除类!朝着未来努力,只要必要,就可以将其转换为旧的JavaScript。然后,当浏览器赶上时,摆脱翻译。 –

2

关键字class是JavaScript的新版本。从2015年6月起,它仅在ES6中进行了标准化。

VS 2013太老了,无法支持它(因为Internet Explorer 11)。

+0

不完全。几乎正确。 **类的关键字早在1999年就已经标准化了,但它被标准化为一个保留字。使用它被某些浏览器(IE?)认为是错误的,事实上,当ES5引入严格模式时,它会在严格模式下触发错误。 ES6最终使它成为一个功能,因此使用它不再是一个错误。 – slebetman

+0

@slebetman - 保留或不保留,将其置于放置位置之前的位置具有定义的含义。这没有什么区别。 – Quentin

相关问题