渡一 3-2 js基础知识


主流浏览器
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.代码块


运算符

任何数据类型+字符串=字符串
=优先级最低,()优先级最高

赋值是从右向左
计算是从左向右

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;