JavaScript实战-JavaScript、jQuery、HTML5、Node.js实例大全(第2版)
上QQ阅读APP看书,第一时间看更新

1.4 高效率的开发

开发效率的高低取决于两大因素,一是自身,二是外在。自身因素包括开发者的逻辑思维能力、对开发语言和工具的熟悉程度。外在因素通常包括工具的灵活度、代码复用率、语法复杂度等。

1.4.1 熟悉语法

JavaScript的语法非常灵活多变,所以很多工作数年的JavaScript同行常常使用的也只是其中一部分语法技巧。读者不要因为JavaScript上手简单而忽略它原本的语法体系,只有熟悉了语法才能在大型项目中游刃有余或是推陈出新。

市面上有很多语法书籍,本书只对语法进行简单概括以供参考查阅。JavaScript语法基本要素:


● 区分大小写。

● 变量不区分类型。

● 每条语句结尾可以省略分号。

● 注释与C、C++、Java、PHP相同。

● 代码段要封闭。


JavaScript数据类型有字符串、数字、布尔值、数组、对象、Null、undefined、NaN。JavaScript中的所有事物都是对象,包括字符串、数值、数组、函数等,由数据类型确定JavaScript内置的几大对象就是String、Number、Boolean、Array、Object,除此之外还提供了正则表达式对象RegExp、日期对象Date、函数对象Function、静态数学对象Math。

注意:

● Null和undefined没有对应的内置对象,只在赋值和对比时使用。

● 除了Math对象,其他内置对象都可以用new关键字调用。

● 常见的window对象和document对象不是JavaScript内置对象,而由浏览器BOM和DOM提供,在Node.js等非浏览器环境下是无法调用的。

● 单双引号都可以用来定义字符串对象,见【范例1-3】。

● 数字对象接受十进制数;接受以0开头的八进制数,如023420;以0x开头的十六进制数,如0x2710;还接受科学计数,如1e4,见【范例1-3】。

● NaN是Not a Number的缩写,主要用于处理计算中出现的错误情况。

● Boolean对象初始化值为0、-0、null、""、false、undefined、NaN时,对象值就是false,反之则为true。

● []可表示创建一个新数组对象Array,见【范例1-3】。

● {}可表示创建一个新对象Object,见【范例1-3】。

● 对象通过中括号运算符能够创建任意名称的对象成员,见【范例1-3】。

【范例1-3 JavaScript常见语法技巧】

    1.  '<span class="z3f"></span>' == "<span class=\"z3f\"></span>"   //等于true
    2.  023420 === 0x2710;                                       //八进制和十六进制,等于true
    3.  023420 === 10000;                                        //八进制和十进制,等于true
    4.  023420 === 1e4;                                          //八进制和科学计数,等于true
    5.   var myArray = []
    6.   var myObject = {}
    7.  var myFunction = function(){};                        //创建函数
    8.      myFunction.3f = 1;                                   //会报错
    9.      myObject[myFunction] = 1;                           //对象成员名称是一个匿名函数
    10. "10.567890"|0 === 10                                    //取整同时转成数值型
    11. +new Date() === new Date().getTime()                //日期转数值
    12. Math.random().toString(16).substring(2);            //14 位字符长度的漂亮随机码
    13. Math.random().toString(36).substring(2);            //11 位字符长度的漂亮随机码
    14. myArray = [1,2,3]
    15. Array.prototype.push.apply(myArray, [4,5,6]);
                                              //合并数组后,myArray===[1,2,3,4,5,6]
    16. var a=1, b=2;
    17. a= [b, b=a][0];                                          //a, b 交换数值使a=2, b=1

更多语法技巧有待读者自己去探索和发现,笔者只是抛砖引玉。

1.4.2 自动完成

语法自动完成功能,相信读者在使用各种IDE工具时都有所感受,在这里要顺便提示的是,前面介绍的很多JavaScript开发IDE都有代码片段自动完成功能,它能一下子完成一大段代码的输入工作。以EditPlus为例,在菜单栏单击“工具(T)”→“首选项(P)”可打开如图1-15所示的对话框。

图1-15 EditPlus首选项对话框

在EditPlus安装目录下可以看到acp结尾的文件,它就是自动完成规则文件。acp文件有4个规则:


● 以#TITLE开头的表示声明,如#TITLE=XHTML就表示是HTML/XHTML的自动完成文件,同理也可以自定义html等文件的自动完成。

● 以#T开头的表示简写,后面紧跟所表示的全部代码。

● 分号(; )代表注释。

● ^!表示指针位置。


【范例1-4】是一小段XHTML的自动完成示例。

【范例1-4 EditPlus自动完成acp文件规则片段】

    1.   #TITLE=XHTML
    2.   ; EditPlus Auto-completion File v1.0 written by ES-Computing.
    3.   ; This file is intended to be used by HTML Toolbar of EditPlus.
    4.   ; <WARNING>
    5.   ; This file is required for EditPlus to run correctly.
    6.   ; You can modify only the content of each entry.
    7.   ; Do not add/remove any entry.
    8.   ; Do not modify title of each entry.
    9.   #CASE=y
    10. #T=B
    11. <b>^! </b>
    12. #T=I
    13. <i>^! </i>
    14. #T=U
    15. <u>^! </u>
    16. #T=H1
    17. <h1>^! </h1>
    18. ;中间省略部分
    19. #T=H6
    20. <h6>^! </h6>
    21. #T=A
    22. <a href="">^! </a>
    23. #T=IMG
    24. <img src="" width="" height="" alt="^! " />

设置好后,可能需要重启EditPlus。新建一个html或xhtml文档,在文件中输入IMG,软件就自动转换为<img src="" width="" height="" alt=""/>。这绝对是提高效率的最佳方式,一次定义多次使用。

限于篇幅,无法一一列举所有软件的自动完成功能,读者可上网搜寻。

1.4.3 使用成熟框架和便捷工具

很多成熟框架(如jQuery和Ext等)都有悠久的历史,代码久经千万网站考验,也符合绝大多数项目需求和开发人员的习惯,对这些框架的使用是提高开发效率的有效手段。

本书第17章将详细介绍jQuery,其他常见的框架还有Ext、Prototype、Yahoo UI、Mootools、Dojo、MochiKit、Zepto、Rialto、Spry等。在这里先给出几个框架的相关链接:


http://jquery.com——大名鼎鼎的jQuery。

https://www.sencha.com/products/extjs/——Ext官网


利器在手,编程不愁,笔者特收集了一些有用的工具供读者平时使用:


● 正则工具——http://refiddle.com/

● 正则表达式库——http://regexlib.com

● 在线调试(非IE可用)——http://jsfiddle.net/

● css、js兼容性支持查询——http://caniuse.com

● CSS3的loading——https://icons8.com/cssload/

● 常用Web图标——https://pfefferle.github.io/openwebicons/

● 检查网站配色是否正确的工具——http://www.checkmycolours.com/