javascript比java难吗?
JavaScript比Java更难。
原因:JavaScript有太多东西需要你自己去理解,这些东西里有很多要么Java已经给你做成范式了,你可以通过学习范式来理解;要么就是根本没有,无需理解。JavaScript需要在语言的基础上再整理一套方法论,这个过程会有不同流派。而Java基本上语言本身已经帮你设定好方法论了,执行它就对了。
下面举点简单的例子:大学课程学习面向对象,一般都用的是class/继承/虚函数那一套方法论,Java实现的面向对象,就是基于这套方法论的,所以如果按照大学课程的学习曲线,先学了C++学个一知半解,再学JAVA,理解Java的面向对象是很容易的,还去掉了多重继承这种头疼的东西,比C++还简单了。反过来看JS,用的是基于prototype实现面向对象,现在很多JS库里都有用JS模仿class的实现,方法还挺多,这不是折腾人吗?上面这个例子就是“Java已经给你做成范式”,你只要按照Java给你的限制去做就行了,不需要再自己去理解了。而用JS去实现面向对象,就需要更多对面向对象的理解,从而知道class/prototype来实现面向对象区别在哪。
写JS需要比较注意不要写全局变量,这不仅是代码规范的问题也是代码质量的问题,于是进而引发了各种变量作用域的问题,很多新手对“函数作用域”难以理解,这个函数作用域又不好用,进而到了ES6又弄出一个let,简直是把局面又搅乱了。
那Java呢?没有全局变量,无需担心。闭包概念也比较弱,变量作用域还是非常清晰的,很好理解。这个例子就是“Java里根本没有”,它给你了限制,不按它的做那就是编译不过。基础设施方面,Java也有优势,比如Java有官方的包管理机制,JS还在造(这个过程中又有流派问题)。Java有static/final/public/private等丰富的修饰词,你写什么它就是什么,无需另行约定,也无需奇技淫巧。
总结:JS语言缺失了一些东西,造成需要自己理解或者再造,一来是增加了学习难度,二来是引起了流派争执。Java是一门简单的语言,因为它所缺失的是Productivity的部分,但作为一门编程语言来说它基础设施还是比较完善,而且它限制比较紧缩,减少了流派纷争(把流派纷争下放到库和框架的应用上面去了)Java难学的地方还是框架和类库……Java的最优实践基本都是围绕类库和框架怎么用的,JS的最优实践还有太多是代码怎么写上面。不过现在JS的框架和类库也不见得少。
【版权声明】:本站内容来自于与互联网(注明原创稿件除外),如文章或图像侵犯到您的权益,请及时告知,我们第一时间删除处理!谢谢!