现在开始分享第3章的内容。
3.1语法
ECMAScript的语法很大程度上借鉴了C语言和其他类C语言,如Java和Perl。
3.1.1 区分大小写
ECMAScript中一切都区分大小写。无论是变量、函数名还是操作符,都区分大小写。比如变量 test 和变量 Test 是两个不同的变量。
3.1.2 标识符
标识符,就是变量、函数、属性或函数参数的名称。标识符由数字、字母,下划线(_)和美元符号($)组成,其中数字不能作为标识符的开头。
标识符中的字母可以是扩展ASCII(Extended ASCII)中的字母,也可以是Unicode的字母字符,如À和Æ(但不推荐使用)。
按照惯例,ECMAScript标识符使用驼峰大小写形式,即第一个单词的首字母小写,后面每个单词的首字母大写。(这种形式跟ECMAScript内置函数和对象的命名方式一致,算是最佳实践)
注意:关键字、保留字、 true 、 false 和 null 不能作为标识符
3.1.3 注释
ECMAScript采用C语言风格的注释,包括单行注释(//...)和块注释(/*.....*/)。
3.1.4 严格模式
ECMAScript 5增加了严格模式(strict mode)的概念。严格模式是一种不同的JavaScript解析和执行模型,ECMAScript 3的一些不规范写法在这种模式下会被处理,对于不安全的活动将抛出错误。要对整个脚本启用严格模式,在脚本开头加上这一行:
"use strict";
它是一个预处理指令。任何支持的JavaScript引擎看到它都会切换到严格模式。
选择这种语法形式的目的是不破坏ECMAScript 3语法。(因为如果出现了破坏ES3语法的“不规范”代码,严格模式马上就会让浏览器报错,让你察觉到它们)
也可以单独指定一个函数在严格模式下执行,只要把这个预处理指令放到函数体开头即可:
function doSomething() {
"use strict";// 函数体
}
所有现代浏览器都支持严格模式。
3.1.5 语句
ECMAScript中的语句以分号结尾。省略分号意味着由解析器确定语句在哪里结尾。
即使语句末尾的分号不是必需的,也应该加上。记着加分号有助于防止省略造成的问题,比如可以避免输入内容不完整(假如前面的内容没有加分号,而后面的内容以‘()’开头,会被连起来,当成是一个函数调用,导致报错)。此外,加分号也便于开发者通过删除空行来压缩代码(如果没有结尾的分号,只删除空行,则会导致语法错误)。加分号也有助于在某些情况下提升性能,因为解析器会尝试在合适的位置补上分号以纠正语法错误。
多条语句可以合并到一个C语言风格的代码块中。代码块由一个左花括号( { )标识开始,一个右花括号( } )标识结束。
if之类的控制语句只在执行多条语句时要求必须有代码块。不过,最佳实践是始终在控制语句中使用代码块,即使要执行的只有一条语句。在控制语句中使用代码块可以让内容更清晰,在需要修改代码时也可以减少出错的可能性。