关键字和保留字:
ECMA-262描述了有一组具有特定用途的关键字,这些关键字可用于表示控制语句的开始或者结束,或者用于执行特定操作等。按照规则,关键字也是保留语言保留的,不能用作标识符,以下是ECMAScript的全部关键字:
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还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定的用途,但它们是有可能在将来被用作关键字。以下是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 |
变量:
ECMAScript的变量是松散类型的,所谓松散类型就是可以保存任何类型的数据。换句话说,每个变量仅仅是一个用于保存值的占位符而已。如:
var massage;
代码定义了一个名为massage的变量,该变量可以用于保存任何值,未经初始化的变量会保存一个特殊值,即undefined。
在函数中使用var定义变量,在函数退出后就会被销毁,举例:
function hello () {
var massage = "hi";
}
hello();
console.log(massage); // 错误
一条语句可以定义多个变量,举例:
var massage = "hi",
found = false,
age = 29;
数据类型:
ECMAScript中有5种简单数据类型:Undefined、Null、Boolean、Number和String,一种复杂类型Object,Object本质是由一组无序的名值对组成的。
typeof操作符:
typeof可能返回的字符串:
-
"undefined"——如果这个值未定义;
-
"boolean"——如果这个值是布尔值;
-
"string"——如果这个值是字符串;
-
"number"——如果这个值是数值;
-
"object"——如果这个值是对象或null;
-
"function"——如果这个值是函数;
var massage = "hi";
alert(typeof massage); // "string"
alert(typeof(massage)); // "string"
alert(typeof 95); // "number"
alert(typeof null); // "object", 因为特殊值null被认为是一个空的对象引用
undefined类型:
变量声明但未初始化的&#x