主流浏览器
IE trident
Chrome webkit/blink
firefox Gecko
Opera presto
Safari webkit
值类型
不可改变的原始值(栈数据)stack 先进后出 电梯
Number,String,Boolean,undefined,null
引用值(堆数据)heap 散列结构 公交排队 先来先上
array,object,function,(date RegExp)
var arr = [1,2]; var arr1 = arr; arr = [1,3]; //重新开了一个空间,与[1,2]没有关系 console.log(arr1);//[1,2]
错误类型
1.低级错误(语法解析错误)
var a = 10; console.log(a); console.log(b); //报错 console.log("20"); //会打印
2.逻辑错误(标准错误)
3.代码块
<script> var a = 10; console.log(c); //报错 </script> <script> var b = 20; console.log(b); //会打印 </script>
运算符
任何数据类型+字符串=字符串
=优先级最低,()优先级最高
赋值是从右向左
计算是从左向右
var a = 10; var b = ++a - 1 + a++; //11-1+11; console.log(b + " " + a); //"33"
练习
1.写出打印结果 var a = (10 * 3 - 4 / 2 + 1) % 2,b = 3; b %= a + 3; console.log(a++); //1 console.log(--b); //2 2.交换a,b的值; var a = 123; var b = 234; //2-1 var c; c = a; a = b; b = c; //2-2 a = a + b; b = a - b; a = a - b;
字符比较的是asc码,返回Boolean值
&& 遇假就返回
|| 遇真就返回
以上结果返回真实的值,并不是Boolean值
var a = 0 && 2 + 2; console.log(a) //0 返回false的值 undefined,null,NaN,"",0,false;