哪个版本的Javascript

时间:2017-04-27 17:57:09

标签: javascript angularjs node.js

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

我对Javascript感到困惑。我正在尝试实现一个基本的MEAN堆栈。我在服务器端使用带有Nodejs(6.x)的es6 Javascript。然后对于客户端,我在es5 Javascript中使用Angular 1.5,但它似乎无法正常工作。

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

更新感谢所有信息。我一直在关注ES6(ES2015)并且看起来并不那么难,我甚至已经成功地编写了一些代码。然而,我刚刚在Angular 1上得到了一个句柄,然后看起来像Angular 1.6和它出来了并且完全不同。 Angular 1具有相当的学习曲线,将Angular 1代码更新为1.6或更高版本有多难?更新的Angular是用ES6编写的吗?用ES6编写的所有前端JS都需要一个转发器,或者浏览器现在可以处理ES6吗?

2 个答案:

答案 0 :(得分:1)

  

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

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

  

全部或全部......服务器/客户端上的所有es6,反之亦然?

这不是这里的情况,但我建议在两侧使用es6并转换为es5用于浏览器,例如使用Babel

答案 1 :(得分:1)

  

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

可以在服务器和客户端上混合使用完全独立的语言,例如服务器上的PHP或Java或Ruby或C#以及客户端上的JavaScript。所以,是的,如果您想在服务器端节点代码中使用ES2015(又名“ES6”)及更高版本的功能,并将自己限制在客户端浏览器代码中的ES5及更早版本的功能,那就没关系了。

你不 ,但是,一旦你习惯写letconst以及箭头函数让你自己不是,那就太难了意外地将它们写在客户端代码中。因此,您可以考虑使用ES2015 +加服务器端和客户端,并将客户端代码从ES2015 +“转换”到ES5,以便在旧版浏览器上使用。有多个转换器,例如Babel。您可以使用最新的浏览器(如Chrome或Firefox或Edge)进行开发,然后让您的构建工具使“生产”构建通过Babel传递所有客户端代码(可能使用Webpack或{ {3}}或类似的)用于旧版浏览器,如IE11。