2016-12-05 80 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