哪个版本的Javascript

注:我知道这可能是一个简单而基本的问题,但是几年前我刚刚开始学习Javascript,当时所有这些变化都开始发生,而且似乎我学到了旧版本。

我与Javascript混淆。 我试图实现一个基本的MEAN堆栈。 我在服务器端使用es6 Javascript与Nodejs(6.x)。 然后对于客户端来说,我在es5 Javascript中使用了Angular 1.5,但它似乎没有工作。

可以在服务器端混合使用es6,在客户端使用es5或者是全部或全部都是…在服务器/客户端上都是es6,反之亦然?

更新感谢所有的信息。 我一直在寻找ES6(ES2015),这似乎并不困难,我甚至写了一些代码成功。 不过,我刚刚得到了angular1的处理,然后看起来像angular1.6和上来,是完全不同的。 Angular 1有相当的学习曲线,将Angular 1的代码更新到1.6或更高版本会有多难? 是ES3中新的Angular? 所有在ES6中编写的前端JS需要一个转储程序,或者浏览器现在可以处理ES6吗?

可以在服务器端混合使用es6,在客户端使用es5或者是全部或全部都是…在服务器/客户端上都是es6,反之亦然?

可以在服务器和客户端混合完全独立的语言,例如服务器上的PHP或Java或Ruby或C#以及客户端上的JavaScript。 所以是的,如果你想在你的服务器端代码中使用ES2015(又名“ES6”)和更高版本的function,并且仅限于客户端浏览器代码中的ES5和更早版本的function,那就好了。

不过,你不必这样做,而且一旦习惯了编写letconst和arrow函数,使自己不会错误地写在你的客户端代码中,那就太奇怪了。 所以出于这个原因,你可能会考虑使用ES2015 +加上服务器端和客户端,并将客户端代码从ES2015 +“转译”到ES5,以便在旧版浏览器上使用。 有多个转译器,例如Babel 。 您可以使用最新的浏览器(例如Chrome或Firefox或Edge)进行开发,然后让您的构build工具使“生产”构build通过Babel(也许使用Webpack或Browserify或类似方法)传递所有客户端代码在较旧的浏览器(如IE11)上使用。

可以在服务器端混合使用es6,在客户端使用es5

是的,你可以混合使用。 但请注意,在两者之间共享代码可能会非常棘手。

是全部还是全无…在服务器/客户端上都是es6,反之亦然?

这不是这种情况,但我build议使用双方es6和转换为es5的浏览器,例如与巴别