尽管都叫ECMAscript,但相比之下,6和3几乎可以看成两门不同的语言。。3的语法在6中都有,但大概只有6语法总量的三分之一左右。。。另外三分之二,在3中是没有的。。3是基于对象的,而6是面向对象的。。比如6中有类,有lambda表达式,还有静态。。通过学习3,是根本不会涉及这些概念的。。
如果以3作为标准JS的话,那么6只有三分像JS,而七分像C#。。对于前端来讲,限于基础不足,NODE会显得非常难学。。。如果之前没学过C#或者JAVA,其实很难平滑过渡到NODE。。。比如下面这是一个类,你会觉得它是你所认为的JS代码?
class BaseResult{
constructor(code,msg,data){
this.code = code
this.msg = msg
***.data = data
}
setCode(code){
this.code = code
}
getCode(){
return this.code
}
setMsg(msg){
this.msg = msg
}
getMsg(){
return this.msg
}
setData(data){
***.data = data
}
getData(){
return ***.data
}
getRes(){
return {'code':this.code,'msg':this.msg,'data':***.data}
}
}
const SUCCESS = new BaseResult(0,'成功',{a:10,b:[{c:10,d:20},{e:30,f:40}]})
console.log(SUCCESS)
所以如果你目前只是学习前端,NODE可以暂时跳过,因为你根本学不会,即便自己觉得会了,到了做项目,你就明白自己根本不是真会,不理解面向对象,根本做不了完整的后端项目。。。要想转到后端,面向对象的ES6是根本跳不过去的
如果将来有机会学学C#或者JAVA,养成了面向对象思想,再学NODE就会变得非常平滑。。
单论做网站,应该是php简单。。但node.js也不算太难,而且能做到的事情,比php多很多。php是个过时的技术,和ASP是同代的产物(asp.net的前身)那时候名叫C- -,后来改名才叫PHP的。就和windowsXP一样。技术上没有任何优势。但市场还在,尽管早晚是要被淘汰的,但由于学习门槛低,又确实有市场需求。所以淘汰速度并不快
JAVASCRIPT是个90后,按说也算是比较老了,但NODE却是门新兴技术。。由于非阻塞异步io实现,导致node的io效率非常高。。。实际测试,node的效率,大约比php高出70-100倍左右。。而且node除了做网站之外,还可以搞嵌入式,树莓派,甚至网游服务器。。
简单概括,如果只是做网站,php简单些。。。但个人还是推荐node。。一个是夕阳技术,一个是朝阳技术。。。其实很容易判断
不过把范围再扩大一些的话,我觉得两个的学习价值都不高。因为都是动态语言,在编写中型以上项目时,都会不可避免的受限于动态语言天生的劣根性,导致各种问题。学习性价比最高的应该是.NET CORE。学习比node难不了太多,而性能却是顶级的。或者Java,岗位多需求大,属于最四平八稳的选择。如果要长期做程序,转向静态语言是迟早的事儿。无论Node,还是php,都只是过渡之下的产物,而不是最终选择。