ECMA-262通过叫做ECMAScript的“伪语言”为我们描述了JavaScript的所有这些基本概念
1.语法
(1).区分大小写
ECMAScript中的(变量、函数名和操作符)都区分大小写。test和Test是两个不同的变量,函数名不能使用typeof,因为它是关键字,但是typeOf则是一个有效的函数名
(2).标识符
标识符就是指变量、函数、属性的名字,或者函数的参数。标识符是按照下列格式规则组合起来的一个或者多个字符:
- 第一个字符必须是一个字母、下划线(_)或一个美元符号($)
- 其他字符可以是字母、下划线、美元符号或数字
标识符中的字母也可以包含扩展的ASCII或Unicode字母字符
ECMAScript标识符采用驼峰大小写格式,也就是第一个字母小写,剩下的每个单词的首字母大写,例如:doSomethingImportant
不能把关键字、保留字、true、false和null用作标识符
(3).注释
ECMAScript使用C风格的注释,包括单行注释和块级注释。
// 单行注释
/*
*这是一个多行
*(块级)注释
*/
(4).语句
每条语句结束最好加个分号(;),判断语句,循环语句中的代码最好写入一个代码块中({})。
2.关键字和保留字
ECMAScript的全部关键字
关 键 字 啊 break do instanceof typeof case else new var catch finally return void continue for switch while debugger function this while default if throw with default if throw delete in try
ECMA-262第3版定义的全部保留字
保 留 字 啊 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
在第5版中新增了let和yield这两个保留字
3.变量
定义变量时要使用var操作符
var message;
局部变量
function test(){
var message = "hi"; //局部变量
}
test();
alert(message); //错误!
全局变量
function test(){
message = "hi"; //全局变量
}
test();
alert(message); //"hi"
虽然省略var操作符可以定义全局变量,但这也不是我们推荐的做法,因为在局部作用域中定义的全局变量很难以维护,而且如果有意地忽略了var操作符,也会由于相应变量不会马上就有定义而导致不必要地混乱。给未经声明地变量赋值在严格模式下会导致抛出ReferenceError错误。
可以使用一条语句定义多个变量,例如:
var message = "hi",
found = false,
age = 29;