ECMAScript 语法大量借鉴了C及其他类C语言。
1.区分大小写
ECMAScript中的一切(变量、函数名和操作符)都区分大小写。这也就意味着,变量名test和变量名Test分别表示两个不同的变量。
2.标识符
所谓标识符,就是指 变量、函数、属性的名字,或者函数的参数。标识符可以是按照下列格式规则组合起来的一或多个字符:
- 第一个字符必须是一个字母、下划线(_)或一个美元符号($);
- 其他字符可以是字母、下划线、美元符号或数字。
按照惯例,ECMAScript标识符采用驼峰大小写格式,也就是第一个字母小写,剩下的每个有意义的单词的首字母大写:
firstSecond
myCar
doSomethingImport
3.注释
ECMAScript使用C风格的注释,包括单行注释和块级注释。
//单行注释
/* 块级注释 */
4.严格模式
ECMAScript5引入了严格模式(strict mode)的概念。严格模式是为JavaScript定义了一种不同的解析与执行模式。在严格模式下,ECMAScript3中的一些不确定的行为将得到处理,而对某些不安全的操作也会跑出错误。要在整个脚本中启用严格模式,可以在顶部添加如下代码:
"use strict";
在指定函数中使用严格模式:
function doSomething(){
"use strict";
//函数体 }
5.语句
ECMAScript中的语句以一个分号结尾;如果省略分号,则由解析器确定语句的结尾。
var sum = a + b //即使没有分号也是有效的语句 -- 不推荐 var diff = a - b; //有效语句 -- 推荐
6.关键字和保留字
关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。关键字不能用作标识符。带*号上标的是第五版新增的关键字
break do instanceof typeof delete case else new var in catch finally return void default continue for switch while if debugger* function this with throw try
不能用作标识符的保留字,尽管保留字在这门语言中还没有任何特定的用途,但他们可能将来被用作关键字,以下是ECMA-262第三版定义的全部保留字:
abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public
7.变量
ECMAScript的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。换句话说,每个变量仅仅是一个用于保存值的占位符而已。定义变量时要使用var操作符。
var message1; //定义了一个名为message的变量,该变量可以用来保存任何值 alert(message1); //undefined 未经初始化的变量会保存一个特殊值undefined /*ECMAScript也支持直接初始化变量。 *变量message中保存了一个字符串值"hi", *初始化的过程就是给变量赋值。 */ var message2 = "Hi"; message3 = 100; //有效 但不推荐 /*使用var操作符定义的变量将成为定义该变量作用域中的局部变量 *也就是说,如果函数中使用var定义一个变量,那么这个变量在函数退出后就会销毁 */ function test(){ var message4 = "hi"; //局部变量 } test(); alert(message4); //Uncaught ReferenceError: message4 is not defined function test2(){ message5 = "hi"; //全局变量,省略var操作符 } test2(); alert(message5); //hi