你们认为学习JavaScript难点在那里?
1个回答
展开全部
1、网页端的js开发属于客户端开发,而且代码是基于网络加载的,相比服务端加载运行库,多了一个异步等待加载依赖文件的问题,由此引伸了很多问题:合并文件、管理依赖等;其次,网页这个所谓客户端的其它资源,比如图片、css文件等,也跟性能息息相关,部署(下载)这些资源,可能需要懂很多类似分域名、缓存、CDN等相关知识;所以假设网页开发像客户端下载个几百M的安装包,那么JS开发人员可以省好多事情了,JSer很多时间花在优化加载速度上了。
2、运行环境的优化,包括处理浏览器兼容性问题(JS支持的ES版本不同,以及DOM、BOM API差异),最近教一位朋友学,写一个函数还得说明:这个函数是ES5的,所以IE6-7不支持、这个特性是ES6的,所有IE都还不支持;所以由于运行时的宿主环境不受控制,使得客户端的JS比服务端的代码发布质量问题更多,我上一家公司发布版本,光做浏览器兼容测试,都要专门做一轮;
3、好的书籍比较少,JS开发人员除了写JS,自身可能学习或者使用其它不同的开发语言,所以写出来的JS代码也是风格迥异,因为我本身学过Java和C#,所以我循用OOP风格,而JS在ES6之前并没有提供对OOP的语言层面的支持,各个框架实现继承封装的机制都不同,一本JS书光花在讲如何实现继承,都要花费好大的篇幅,而那些本身没有OOP学习背景的人会一头雾水,嗯,还有不少JS开发人员是从非专业转过来的(比如CSSer),有位负责面试的同事说,现在做前端面试,主要工作是过滤CSSer(因为从称呼上,CSS也说是前端开发),这些人有些学过js,但都是皮毛,真正的码农,专攻JS的,应该不会觉得js很难吧;
4、服务端的JS(Node)问题少一些,但毕竟服务端更加百花齐放,jser进军服务端,还有很长的路要走(有不少分布式、操作系统、进程操作等知识需要学习),目前更多胜任前端服务部分,一般资深jser比较容易上手,但数量稀缺;
5、JS的怪异语法,让很多人望而却步,有些公司面试jser居然考怪异语法,我想问这有什么卵用?达成一个目标有很多种方法,我一般用最容易看懂的,没有必要耍技巧,编码特别是做页面交互开发,值得耍技巧?
6、前面有同学说到了,前端框架全家桶,客户端框架多,不同业务场景用的都不同,比如企业开发用到的框架跟普通网站用到的大不相同,大公司和小公司人员配备更不一样,有些公司没有csser人员配置(更多公司没有前端jser配置)……
总结一下吧:
1、非专业coder上手js难,难在编程基础(跟js无关);
2、专业coder以第2、第3语言上手js难,难在思维转变;
3、学生dog上手js,难么?
2、运行环境的优化,包括处理浏览器兼容性问题(JS支持的ES版本不同,以及DOM、BOM API差异),最近教一位朋友学,写一个函数还得说明:这个函数是ES5的,所以IE6-7不支持、这个特性是ES6的,所有IE都还不支持;所以由于运行时的宿主环境不受控制,使得客户端的JS比服务端的代码发布质量问题更多,我上一家公司发布版本,光做浏览器兼容测试,都要专门做一轮;
3、好的书籍比较少,JS开发人员除了写JS,自身可能学习或者使用其它不同的开发语言,所以写出来的JS代码也是风格迥异,因为我本身学过Java和C#,所以我循用OOP风格,而JS在ES6之前并没有提供对OOP的语言层面的支持,各个框架实现继承封装的机制都不同,一本JS书光花在讲如何实现继承,都要花费好大的篇幅,而那些本身没有OOP学习背景的人会一头雾水,嗯,还有不少JS开发人员是从非专业转过来的(比如CSSer),有位负责面试的同事说,现在做前端面试,主要工作是过滤CSSer(因为从称呼上,CSS也说是前端开发),这些人有些学过js,但都是皮毛,真正的码农,专攻JS的,应该不会觉得js很难吧;
4、服务端的JS(Node)问题少一些,但毕竟服务端更加百花齐放,jser进军服务端,还有很长的路要走(有不少分布式、操作系统、进程操作等知识需要学习),目前更多胜任前端服务部分,一般资深jser比较容易上手,但数量稀缺;
5、JS的怪异语法,让很多人望而却步,有些公司面试jser居然考怪异语法,我想问这有什么卵用?达成一个目标有很多种方法,我一般用最容易看懂的,没有必要耍技巧,编码特别是做页面交互开发,值得耍技巧?
6、前面有同学说到了,前端框架全家桶,客户端框架多,不同业务场景用的都不同,比如企业开发用到的框架跟普通网站用到的大不相同,大公司和小公司人员配备更不一样,有些公司没有csser人员配置(更多公司没有前端jser配置)……
总结一下吧:
1、非专业coder上手js难,难在编程基础(跟js无关);
2、专业coder以第2、第3语言上手js难,难在思维转变;
3、学生dog上手js,难么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询