免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 36640 | 回复: 49
打印 上一主题 下一主题

[JavaScript] Web开发技术讨论之二:如何编写高效JavaScript代码 [复制链接]

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-02-28 16:21 |只看该作者 |倒序浏览
获奖名单已公布,详情请看:http://bbs.chinaunix.net/thread-4132998-1-1.html

活动背景:
学会编写JavaScript程序容易,但要成为专家却实属不易。一方面是由于JavaScript语言的设计思想与Java、C#等大众语言区别很大,另一方面是由于其设计时的仓促性导致JavaScript语言本身精华与糟粕并存。

另外因为跨平台的缘故,JavaScript历史悠久且实现多样化,因此我们很难确定哪些特性在哪些平台上是可用的。而令事态更加严峻的事实是JavaScript的主要生态系统——Web浏览器,它并不支持让程序员指定某个JavaScript的版本来执行代码。由于最终用户可能使用不同Web浏览器的不同版本,因此,我们必须精心地编写Web程序,使得其在所有的浏览器上始终工作如一。

而且随着JavaScript语言本身的不断发展,JavaScript并不只是针对客户端Web编程。JavaScript的其他应用包括服务器端程序、浏览器扩展以及针对移动和桌面应用程序的脚本。某些情况下你可能需要一个特定的JavaScript版本。对于这些情况,利用特定平台支持的JavaScript特定实现的额外特性是有意义的。

所以,对于任何一个想要做到严谨编程的JavaScript开发者来说,如何写出高效的现代JavaScript代码,是我们不断提升道路上一个必经之路。

本期话题:
1、谈谈您的JavaScript的学习和提升的经验。
2、谈谈您的一些JavaScript的高效编程的技巧。

活动时间:
2014年2月28日-3月20日

本期嘉宾:Web开发版资深版主:HonestQiao

活动奖品:
优秀奖6名:奖励《Effective JavaScript:编写高质量JavaScript代码的68个有效方法》图书一本

奖品信息:


    原书名:Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript (Effective Software Development Series)
    原出版社: Addison-Wesley Professional
    作者: (美)David Herman   
    译者: 黄博文 喻杨
    丛书名: Effective系列丛书
    出版社:机械工业出版社
    ISBN:9787111446231
    上架时间:2013-11-13
    出版日期:2014 年1月
    开本:16开
    页码:164

样张阅读:
http://wenku.it168.com/d_001329728.shtml

活动要求:
1、 要言之有物,不能低于20个字。
2、 本次话题主要关注JavaScript程序设计的讨论,其他问题可能不做重点


论坛徽章:
220
未羊
日期:2015-01-30 17:38:21未羊
日期:2015-01-30 17:38:26未羊
日期:2015-01-30 17:38:32未羊
日期:2015-01-30 17:38:38未羊
日期:2015-01-30 17:43:55白羊座
日期:2015-02-10 09:25:23白羊座
日期:2015-02-10 09:25:23白羊座
日期:2015-02-10 09:25:23白羊座
日期:2015-02-10 09:25:23白羊座
日期:2015-02-10 09:25:23羊年新春福章
日期:2015-03-04 15:12:552015年迎新春徽章
日期:2015-03-04 15:13:09
2 [报告]
发表于 2014-02-28 16:51 |只看该作者
好活动,支持一下

论坛徽章:
17
戌狗
日期:2013-09-02 23:43:02技术图书徽章
日期:2014-04-29 14:16:02技术图书徽章
日期:2014-04-24 15:51:26未羊
日期:2014-04-06 22:10:30丑牛
日期:2014-04-06 21:23:29辰龙
日期:2014-04-06 21:20:22处女座
日期:2014-04-06 21:16:18技术图书徽章
日期:2014-04-02 15:10:51金牛座
日期:2014-03-10 22:26:18巨蟹座
日期:2014-02-17 17:12:12技术图书徽章
日期:2014-01-24 10:38:43摩羯座
日期:2013-11-29 18:00:18
3 [报告]
发表于 2014-02-28 17:45 |只看该作者
板凳。好活动,支持一下

论坛徽章:
18
卯兔
日期:2013-09-27 17:41:0615-16赛季CBA联赛之佛山
日期:2016-07-09 17:34:45操作系统版块每周发帖之星
日期:2015-12-02 15:01:04IT运维版块每日发帖之星
日期:2015-12-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-07 06:20:00IT运维版块每日发帖之星
日期:2015-10-03 06:20:00IT运维版块每日发帖之星
日期:2015-10-01 06:20:00羊年新春福章
日期:2015-04-01 17:56:06拜羊年徽章
日期:2015-04-01 17:56:062015年迎新春徽章
日期:2015-03-04 09:49:452015年辞旧岁徽章
日期:2015-03-03 16:54:15天秤座
日期:2015-01-14 06:39:28
4 [报告]
发表于 2014-02-28 18:45 |只看该作者
好活动支持一下。
没有接触这门编程语言,有个大学同学 对这个研究很深,搞了一本书。

最主要的一句话: 一定要有兴趣.......

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
5 [报告]
发表于 2014-02-28 21:08 |只看该作者
好活动,支持。

我最近正在写JS,主要是node.js。node.js用的引擎是V8,相对来说是很成熟的。比起需要兼容浏览器的同学们可幸福多了。反正js我觉得是过于灵活了,所以给自己规定一些规则还是蛮好的。

网上有很多规则,不过总结出一套自己的还是蛮有意义的。很多规则都是踩过坑以后才总结出来的。所以规则总是要看,只是不要当教条就行,毕竟js的优势就是灵活。

我个人觉得,在规则之上,也得有一套“元规则”,比如说,预先分配好模块、决定接口这些。大家都知道的。至于“逗号写在前面”这种,我觉得是见仁见智的规则。

切分成模块以后,单个模块可以用node或者glue这些东西跑,可以做单元测试,这样就很大程度上避免了bug。

工具的话,intellj Idea的补全很爽,会提示很多问题。不过我用Vim习惯了,幸好idea有Vim的插件。

另外,写js最重要的一点是,多关注一些开源的js项目,我个人比较喜欢Q这个项目(https://github.com/kriskowal/q),它提供了一套控制流的包装,用起来很爽。配合orm简直就是神器啊……

恩,上面算抛砖引玉,希望大家有更多的心得可以分享~

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
6 [报告]
发表于 2014-03-01 08:21 |只看该作者
本帖最后由 forgaoqiang 于 2014-03-09 23:52 编辑

Javascript 经常用 这个是个好活动

1、谈谈您的JavaScript的学习和提升的经验。
最初认识到Javascript应该是在高中的时候,记得当时在机房鼠标划过网页的时候,鼠标后面跟随着一排特效文字,通过编辑替换文字内容感觉很有意思。最初开始学习是在大一的时候,虽然不是计算机专业的,学习简单的网页制作的时候,HTML标签学习差不多之后就会遇到Javascript,当时学习JS主要用作表单判断,一些简单的页面效果,很少涉及DOM操作。后来工作的时候要写功能性网站(管理系统非CMS类),因为主要使用草根的PHP,Javascript也就混杂的书写,基本上都是直接嵌入到页面当中,直接事件触发,比如 <button onclick="doSth()"> 这样的语法,虽然能够工作但是算不上高效。
因为以前有C语言等基础,学习Javascript也不算吃力,学习的时候才发现Javascript和其他的语言又不太一样,经常出现匿名函数,闭包的概念很难理解。2011年一些jS的框架库还不是很流行,大部分功能都得自己去实现。后来接触到JQuery,发现非常好用,特别是它的选择器功能特别强大,和CSS的语法兼容,操作DOM变得简单轻松。
使用一段jQuery后就开始看下jQuery的源代码,不管怎么说,开源的源码经过很多大神的修改后,变得很精妙,很多地方仍然看不明白,慢慢的看别人的JS写法,从中进行学习。去年从Cu活动中拿到了第六版的《Javascript权威指南》,大体翻阅了下,发现系统的学习和零散的就是不一样,很多没有注意到的细节。现在JS已经能够应用到服务器端,不再是客户端脚本语言这么简单,Node.js也大体看了下,最终还是不太习惯这种编程方式。
学习的话可以自己画下思维导图,把一些JS的知识点串一下,真正生产环境中虽然很多原理不用弄明白,直接调用别人写好的函数或方法(这个class概念也和其他的语言不太一样)就能够完成功能,有时间去研究下实现细节还是挺有意思的。


2、谈谈您的一些JavaScript的高效编程的技巧。
Javascript大多都在用JQuery这个库,所以本身对JS理解不深入,现在是能用的程度,要说技巧的话倒是有些心得:
①首先是要有一个智能的编辑器,个人还是比较习惯Sublime的,智能感应相当不错,而且切换到vim模式无需鼠标即可。
②因为我使用JS主要是用在前端显示,好的调试工具也是很重要的,虽然Firebug相当有名,个人还是习惯用Chrome的调试工具,但是Firefox浏览器的兼容检验还是有必要的,对于IE已无力吐槽,真心不好调试,还好不是做传统意义上的网站,完全可以不去兼容IE浏览器,直接为客户指定浏览器就行,省了不少功夫。
③格式规范,虽然JS本身不强制要求排版,但是漂亮的缩进更容易回头来阅读修改。
④ajax使用适当,单页应用什么的时候只是很新潮的理念,个人感觉ajax还是少用为妙,适当即可。
⑤大型应用或站点一般都提供JS版本的API,比如微博、QQ的,可以考虑使用JS的SDK。

论坛徽章:
459
亥猪
日期:2014-05-31 12:08:03亥猪
日期:2014-05-31 12:07:38亥猪
日期:2014-05-31 12:08:04亥猪
日期:2014-05-31 12:07:43亥猪
日期:2014-05-31 12:07:52亥猪
日期:2014-05-31 12:08:09亥猪
日期:2014-05-31 12:07:51亥猪
日期:2014-05-31 12:08:02亥猪
日期:2014-05-31 12:07:59亥猪
日期:2014-05-31 12:07:37亥猪
日期:2014-05-31 12:07:50亥猪
日期:2014-05-31 12:07:39
7 [报告]
发表于 2014-03-01 12:49 |只看该作者
不错不错!

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
8 [报告]
发表于 2014-03-01 23:26 |只看该作者
版权声明,以上内容为我原创。

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
9 [报告]
发表于 2014-03-04 15:14 |只看该作者
JavaScript很强大,却谦虚地自称为Script唉。

论坛徽章:
1
水瓶座
日期:2013-11-04 13:16:13
10 [报告]
发表于 2014-03-04 15:20 |只看该作者
  努力学习js中~  
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP