变量(variable)
变量声明  如 var a = 100;
先声明再赋值  JS中声明变量的类型只有var(其类型天生是浮点型)  不像Java中的那些int  float
若想为字符串类型  则在声明时加  单引号或双引号  即可  不过JS中最好使用单引号
对于未声明的变量直接使用会报错
赋值的顺序自右向左  如  var a = b = 10;  //先把值赋给b
单一var模式
如  var a ,
b ,
c ;
变量命名规则
1  需以  英文字母    $  开头
2  可以包括  英文字母    $  开头  数字
3  不可以用系统的关键字、保留字作为变量名
js语句基本规则
语句后面要用分号结束;
js语法错误会引发后续代码终止  但不会影响其它js代码块
错误分两种:
1  低级错误(语法解析错误)
在执行解释语言之前  系统会先通篇扫描一遍看是否有低级错误
如果有  当前块的程序一行都不会执行  比如  var num = 1:
2  逻辑错误(标准错误  情有可原)
程序会执行到逻辑出错的那行代码前  之后的都不会执行
如  document.write(num);  //num没定义直接用
书写格式要规范 = + / - 两边都应该有空格 
值类型
js中是由值来决定类型(数据类型)
1  不可改变的原始值(栈数据  stack)
原始值是不能有属性和方法的
number,string,boolean,undefined,null
对于string类型的底层是数组  可以有str.length;
也可以通过  str[i]  或  str.charAt(i)  取出里面第i-1位的字符
2  引用值(堆数据  heap)
Array, Object, function …
2.1  var arr = [1,2,false,”abc”];  //数组里面放什么都行
arr.push(3); //可以往数组里加东西
运算操作符
运算自左向右 
1  +  有两种含义
1.1  数学运算、字符串链接
1.2  任何数据类型加字符串都等于字符串
  如  var a = 1+”a”+1+1;  //结果为1a11
  var a = 1+1+”a”+1;  //结果为2a1
2  -        /    %    =    ()
优先级”=“最弱,”()”优先级较高
注意:  1 / 0  Infintity    0 / 0 NaN
3  ++    - -    +=    -=    /=    =    %= 
注意a++ 与 ++a的区别
3.1  a++ 是先运行完执行语句后  最后才++
如  a = 1;  b = a++ +1; document.write(b);
//得到的b的值为2  先执行赋值操作  赋值完后再a++
3.2  ++a 是先加加  然后才执行语句
如  a = 1;  b = a— + —a; document.write(b);
//得到的b的值为0  先a—得到1  再1+ —a  其中—a为-1  所以最后1+-1 = 0
a = 1;  b = ++a +1; document.write(b);
//得到的b的值为3  先++a  再执行赋值操作
比较运算符
>    <    ==    >=    <=    !=
比较结果为boolean值
>可以比较字符串  比较的是字符在asc码中的先后顺序
比如  “a”>”b”结果为true  因为a排在b前面
    “10”>”8”结果为false  注意比较的是字符的先后顺序
 先比较1和8的先后顺序  1在8前  返回false  所以后面的就不用比了
逻辑运算符
“&&”,“||”,“!”
运算结果为真实的值
&& 先将第一个表达式转换为布尔类型的值  如果是真  则继续下一个表达式
 直到找到表达式对应的布尔类型的值为假  或  运算到结尾值都为真时  输出当前的值
 如  a = 1 && false —-> a为false
a = 0 && 1  —-> a为0
a = 1 && 2 && 4 —-> a为4
|| 与 && 类似  找到表达式对应的布尔类型的值为真  或  运算值都为假时  输出当前的值
如 a = 1 || false —-> a为1
a = false || 0  —-> a为0
a = 0 || 1 || false —-> a为1
被认定为false的值
undefined, null,  NaN,  “”  , 0, false
逗号运算符
var a = (2,3);
可以允许这样赋值  这里一定要加括号  a的值为3
赋值赋的是括号中最后一个逗号后面的表达式计算后的结果
注意()中的任何东西都会变为表达式**
