一   语法

  区分大小写,驼峰式书写方式;

  严格模式:“use strict”;    


二  数据类型

  a. 基本数据类型:

    undefined 声明变量未初始化

    null 空指针,可以释放内存

    Boolean      

 

Boolean true false
String 非空字符串 空字符串
Number 非零数值 0和NaN
Object 任何对象 Null
Undefined / undefined

    Number

      Number(),parseInt( ,基数),parseFloat();

      NaN 任何数值除以0,非数值;

    String

      toString() 不可用转换null、undefined;

      String() 可以转换null、undefined;

  b.复杂数据类型:

    object


三   操作符

  a.一元操作符:

    ++a,--a,a++,a--;

    +a  等同于Number(a);

    -a   等同于-Number(a);

  b.位操作符:

    负数以二进制存储,采用二进制补码;  

      1、求绝对值二进制码;

      2、反码;

      3、反码加1;

    按位非(~) 反码,等同于操作数的负值减1;

    按位与(&) 同为1才为1,反之为0;

    按位或(|)  1个1就为1,反之为0;

    按位异或(^) 同为1或0为0,反之为1;

    左移(<<) 左移不影响符号位;

    有符号右移(>>) 产生的空位由符号位填充;

    无符号右移(>>>) 产生空位由0填充;

  c.布尔操作符:

    逻辑非(!)    !! = Boolean();  

    逻辑与(&&)同为true才为true,反之为false    ---短路操作符;

    逻辑或(||)  同为false才为false,反之为true  ---短路操作符;

  d.乘性操作符:

    乘法  *;  

    除法  /;

    求模  %(取余);

  e.加性操作符:

    +   优先字符串,除非都是数值;  

    -   优先是Number;

  f.关系操作符:

    <   >   <=   >=

  g.相等操作符:

    ==    !=    强制转换比较;

    ===  !==  仅比较不转换;

  h.条件操作符:

    var max = (num1>num2)?num1:num2;

  i.赋值操作符:

    *=   /=  %=  +=  -+  <<=  >>=  >>>=

  j.逗号操作符:

    用于声明多个变量;


四   语句

  a.if 语句

  b.do-while    先执行,再判断;

  c.while         先判断,再执行;

  d.for

  e.for-in         枚举对象的属性;

  f.label           循环break和continue标签;

  g.

    break      跳出循环;

    continue 跳出本次循环;

  h.with           将代码作用域设置到一个特定的对象中

  i.switch


五   函数

  a.参数  通过arguments来访问;

  b.不能重载;