- 标识符:指变量、函数、属性的名字,或者函数的参数。标志符规则:
- 第一个字符必须是一个字母、下划线(_)或一个美元符号($);
- 其他字符可以使字母、下划线、美元符号或数字;(其中的字母可包含扩展ASCII或Unicode字母字符,但不推荐)
- 严格模式(ECMAScript 5):在整个脚本中启用严格模式,可以再顶部添加代码:"use strict";也可以放在指定函数内表示在指定函数内执行严格模式。
- 关键字和保留字(带*号为第5版新增):
关键字:
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
保留字(ECMAScript 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种基本(简单)数据类型:Undefined,Null,Boolean,Number,String;1中复杂数据类型:Object
- NaN:
- 任何涉及NaN的操作都会返回NaN;
- NaN与任何值都不相等。(判断用全局函数isNaN())
- 类型转换:
- Number(),parseInt(),parseFloat():第一个可用于任何数据类型,后两个专门用于把字符串转换成数值;
- 由于parseInt()和parseFloat()在ECMAScript 3和5中存在分歧,所以在转换的时候传一个基数作为第二个参数,如parseInt("0xAF",16),即使10也加上,防止出错;
- Number()转换时遇转换失败会返回NaN,Number("01f")->NaN;而parseInt()会保留出错前的转换结果,parseInt("01f")->1
- 字符串的特点:字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。所以字符串拼接效率很低。
- 数值转字符串,可指定进制(2-36),如num.toString(10);
- Object的每个实例都具有下列属性和方法:hasOwnProperty(propertyName), isPrototypeOf(object), propertyIsEnumerable(propertyName), 还有Constructor(), toLocaleString(), toString(), valueOf()
- 位操作符:按位非(~),按位与(&),按位或(|),按位异或(^),左移(<<),有符号右移(>>),无符号右移(>>>)
- 布尔操作符:
- 逻辑非(!):!false->true,!"blue"->false,!0->true,!NaN->true,!""->true,!12->false(会被转化为false的值:false,"",0,NaN,null,undefined,其中除undefined被Number()转化为NaN外,其它都将被转化为0)
- 逻辑与(&&),逻辑或(||):为短路操作。
- 乘性操作符中的注意事项:
- Infinity与0相乘结果为NaN;
- 零除以零结果为NaN,其它数字除以零结果为Infinity或-Infinity(与被除数的正负号和0的正负号都有关系);
- Infinity除以Infinity结果为NaN;
- 相等性比较:null和undefined相等,此时不能将他们转换其他任何值。
- 标签与break或continue配合使用,使得可以轻松跳出多重循环。