break do instanceof typeof case else new var catch finally return void continue for switch while debugger function this with default if throw delete in try
保留字
ECMA-262第三版
1 2 3 4 5 6 7 8
abtract 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
ECMA-262第五版
非严格模式
1 2
class enum extends super const export import
严格模式增加
1 2 3
implements package public interface private static let protected yield
变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
ES的变量是松散类型的,可以用来保存任何类型的数据 var message;//定义了一个名为message的变量,初值为undefined var message = "hi"; message = 100; //有效、但不推荐 //使用var操作符定义的变量将成为定义该变量的作用域中的局部变量 //如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁 functiontest(){ var message = "尼号";//局部变量 } test(); alert(message);//错误 //但是可以通过省略var使message变成全局变量而显示,不过并不推荐这样做 //因为在局部作用域中定义的全局变量很难维护,而且如果有意地忽略了var操作符,也会由于响应变量不会马上就有定义而导致不必要的混乱。给未经声明的变量赋值在严格模式下会导致抛出ReferenceError错误
//使用一条语句定义多个变量(,分隔) var message = "hi",found=false,age=29;
数据类型
ECMAScript中有5种简单数据类型(基本数据类型)
Undefined
Boolean
Number
String
Null
以及一种复杂数据类型—Object
typeof操作符
1 2 3 4 5 6 7 8 9 10
由于ECMAScript是松散类型的,因此需要一种手段来检测给定变量的数据类型-typeof 使用typeof可能返回的结果 undefined 如果这个值未定义 boolean 如果这个值是布尔值 string 如果这个值是字符串 number 如果这个值是数值 object 如果这个值是对象或null function 如果这个值是函数 注意:typeof 是一个操作符而不是函数,因此圆括号尽管可以使用,但不是必须的 typeofnull 返回“object”
var floatNum1 = 1.1; var floatNum2 = 0.1; var floatNum3 = .1//有效,但不推荐 //由于保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机地将浮点数值转换为整数值 var floatNum1 = 1.//解析为1 var floatNum2 = 10.0//整数-解析为10