学习JavaScript的难点在哪儿?

前端技术 everyinch 4470℃ 0评论

1、网页端的JavaScript开发属于客户端开发,而且代码是基于网络加载的,相比服务端加载运行库,多了一个异步等待加载依赖文件的问题,由此引伸了很多问题:合并文件、管理依赖等;其次,网页这个所谓客户端的其它资源,比如图片、css文件等,也与性能息息相关,部署(下载)这些资源,可能需要懂很多类似分域名、缓存、CDN等相关知识;所以假设网页开发像客户端下载个几百M的安装包,那么JavaScript开发人员可以省好多事情了,JavaScript开发者很多时间都花在优化加载速度上了。

2、运行环境的优化,包括处理浏览器兼容性问题(JavaScript支持的不同,以及DOM、BOM API差异),由于运行时的宿主环境不受控制,使得客户端的JavaScript比服务端的代码发布质量问题更多,有的公司光做浏览器兼容测试,都要专门做一轮。

3、好的书籍比较少,JavaScript开发人员除了写JavaScript,自身可能学习或者使用其它不同的开发语言,所以写出来的JavaScript代码也是风格迥异,JavaScript在ES6之前并没有提供对OOP的语言层面的支持,各个框架实现继承封装的机制都不同,一本JavaScript书光花在讲如何实现继承,都要花费好大的篇幅,而那些本身没有OOP学习背景的人会一头雾水,嗯,还有不少JavaScript开发人员是从非专业转过来的(比如CSSer),这些人有些学过JavaScript,但都是皮毛,真正的码农,专攻JavaScript的,应该不会觉得JavaScript很难。

4、服务端的JavaScript(Node.js)问题少一些,但毕竟服务端更加百花齐放,JavaScript进军服务端,还有很长的路要走(有不少分布式、操作系统、进程操作等知识需要学习),目前更多胜任前端服务部分,一般资深JavaScripter比较容易上手,但数量稀缺。

5、JavaScript的怪异语法,让很多人望而却步,鼓励解决问题时采用最容易看懂的方法,没有必要耍技巧,编码特别是做页面交互开发,值得耍技巧?

6、前端框架多,不同业务场景用的都不同,比如企业开发用到的框架跟普通网站用到的大不相同。

总之:

语言层面:弱类型语言隐式转换带来的不确定,闭包,原型链等机制造成很多困惑;

应用层面:BOM、DOM、Node等需要较多的实践经验才能掌握。

另外,JavaScript与Java由于有相同的四个字母,所以很多人都会混淆,比如书店往往把这两种语言放到一个架子上卖,呵呵。下面简单对比一下两者:

Java和JavaScript都是目前热度非常高的语言,受欢迎就意味学好不用担心没工作,目前两个行业人才确实也未饱和。

Java是一门中规中矩的语言,很多人感觉这门语言毫无创新,只是妥协的C++,而且它本身并不愿意吸取新的特性。Java由于它的知名度,是很多新人第一个想到要学的计算机语言。相对而言,Java是那种越看越平淡的语言。

而JavaScript是了解越多给人惊喜越多的语言。这只当初的“会跳舞的猴子”变得越来越重要,正是它实现了Java那个古老的诺言“一次编写,到处运行”。很多人都是函数式编程的忠实拥护者,所以JavaScript的编写非常有吸引力。而且,Node.js的出现已经补全了语言的短板,当初格雷厄姆在《黑客与画家》书里表示并不看好JavaScript(当然Java就更没看上了),但在后续修订版的文章中提到“JavaScript现在能用了”。Jeff Atwood(StackOverflow的联合创始人)还在2007年炮制出了所谓的Atwood法则:任何可以用JavaScript写成的应用最终都会用JavaScript写。

分享&收藏

转载请注明:陈童的博客 » 学习JavaScript的难点在哪儿?

喜欢 (5)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
'; } if( dopt('d_footcode_b') ) echo dopt('d_footcode'); ?>