- 8
- 0
- 约2.4千字
- 约 7页
- 2017-08-14 发布于河南
- 举报
第1章 JavaScript语言基础
对于任何语言来说,如何选用代码的写法和算法最终会影响到执行效率。与其他语言不同,由于JavaScript 可用资源有限,所以规范和优化更为重要。代码结构是执行速度的决定因素之一:代码量少,运行速度不一定快;代码量多,运行速度也不一定慢。性能损失与代码的组织方式及具体问题的解决办法直接相关。
程序通常由很多部分组成,具体表现为函数、语句和表达式,它们必须准确无误地按照顺序排列。优秀的程序应该拥有前瞻性的结构,可以预见到未来所需要的修改。优秀的程序也有一种清晰的表达方式。如果一个程序被表达得很好,那么它更容易被理解,进而能够成功地被修改或修复。JavaScript代码经常被直接发布,因此它应该自始至终具备发布质量。整洁是会带来价值的,通过在一个清晰且始终如一的风格下编写的程序会更易于阅读。
JavaScript的弱类型和过度宽容特征,没有为程序质量带来安全编译时的保证,为了弥补这一点,我们应该按严格的规范进行编码。JavaScript包含大量脆弱的或有问题的特性,这些会妨碍编写优秀的程序。我们应该避免JavaScript中那些糟糕的特性,还应该避免那些通常很有用但偶尔有害的特性。这样的特性让人既爱又恨,避免它们就能避免日后开发中潜在的错误。
建议1:警惕Unicode乱码
ECMA标准规定JavaScript语言基于Unicode标准进行开发,JavaScript内核完全采用UCS字符集进行编写,因此在JavaScript代码中每个字符都使用两个字节来表示,这意味着可以使用中文来命名变量或函数名,例如:
var?人名?=??张三; ?function?睡觉(谁){ ?
????alert(谁?+?:快睡觉!都半夜三更了。); ?
} ?
睡觉(人名);?
由于JavaScript脚本一般都“寄宿”在网页中,并最终由浏览器来解析和执行,因此在考虑到JavaScript语言编码的同时,还要顾及嵌入页面的字符编码,以及浏览器支持的编码。不过现在的浏览器一般都支持不同类型的字符集,只需要考虑页面字符编码与JavaScript语言编码一致即可,否则就会出现乱码现象。
当初设计JavaScript时,预计最多会有 65 536个字符,从那以后慢慢增长到了一百万个字符。JavaScript字符是16位的,这足够覆盖原有的65 536个字符,剩下的百万字符中的每一个都可以用一对字符来表示。
Unicode把一对字符视为一个单一的字符,而JavaScript认为一对字符是两个不同的字符,这将会带来很多问题,考虑到代码的安全性,我们应该尽量使用基本字符进行编码。
建议2:正确辨析JavaScript句法中的词、句和段
JavaScript语法包含了合法的JavaScript代码的所有规则和特征,它主要分为词法和句法。词法包括字符编码、名词规则、特殊词规则等。词法侧重语言的底层实现(如语言编码问题等),以及基本规则的定义(如标识符、关键字、注释等)。它们都不是最小的语义单位,却是构成语义单位的组成要素。例如,规范字符编码集合、命名规则、标识符、关键字、注释规则、特殊字符用法等。
句法定义了语言的逻辑和结构,包括词、句和段的语法特性,其中段体现逻辑的结构,句表达可执行的命令,词演绎逻辑的精髓。
段落使用完整的结构封装独立的逻辑。在JavaScript程序中,常用大括号来划分结构,大括号拥有封装代码和逻辑的功能,由此形成一个独立的段落结构。例如,下面这些结构都可以形成独立的段落。
{ ?
????//?对象 ?
} ?
function?(){ ?
????//?函数 ?
} ?
if?(){ ?
????//?条件 ?
} ?
for?(){ ?
????//?循环 ?
} ?
while?(){ ?
????//?循环 ?
} ?
switch?(){ ?
????//?多条件 ?
} ?
with?(){ ?
????//?作用域 ?
} ?
try{ ?
????//?异常处理 ?
}?
语句是由多个词构成的完整逻辑。在JavaScript中,常用分号(;)来划分语句,有时也可以省略分号,默认使用换行符表示完整的语句。
一条语句可以包含一个或多个词。例如,在下面两条语句中,第一条语句只有一个词,这是一个指令词,该指令只能位于循环体或switch结构体内。第二条语句包含3个词,alert表示函数名(即变量),小括号表示运算符,而“提示信息”表示字符串直接量。
break;? ?
alert(提示信息);?
(function(i){? ?
????alert(i); ?
})(提示信息);??
(function(i){? ?
????return?function(){ ?
????????alert(i)
原创力文档

文档评论(0)