观看渡一教学视频做的笔记,加强基础知识。
1. 主流浏览器及其内核
浏览器 | 内核 |
---|---|
IE | trident |
chrome | webkit / blink |
fireFox | Gecko |
Opera | presto |
Safari | webkit |
2. 变量
变量声明:var a;var a,b,c;
变量赋值:a = 100;
变量的命名规则:
- 必须以英文字母或_或$开头;
- 变量名可以包括英文字母或_或数字;
- 不可以用系统的关键字或保留字做变量名;
3. 数据类型
数据类型包括不可改变的原始值(栈数据:先近后出)和引用值(堆数据);
原始值类型(5个):
- Number(默认是浮点型)
- Boolean
- String
- undefined(没给变量赋值)
- null (占位,可以用null覆盖一个不想再用的方法)
引用值类型:
- array
- Object
- function
- date
- RegExp
- 等等
两种类型的赋值规则不一样(原始值拷贝的是副本,引用值拷贝的是地址,操作的还是一个数据):
var a = 10;
var b = a;
a = 20;
console.log(a,b);
结果:20,10
var arr = [1,2];
var arr1 = arr;
arr.push(3); // 如果arr = [3,4]; 会给arr另开一个房间
console.log(arr,arr1);
结果:[1,2,3],[1,2,3] // [3,4],[1,2]
4. 运算符
4.1 js算数运算符
‘+’,‘-’,‘*’,‘/’,‘%’,‘++’,‘–’
- “+”
数学运算,字符串链接;
任何数据类型加字符串都是字符串;
var a = 1 + 1 + 'a' + 1 + 1;
console.log(a);
结果:2a11
-
“/”
1/0 为 Infinity
0/0 为 NaN -
“%”
1%0 为NaN
0%0 为NaN
0%1 为0
4.2 js赋值运算符
‘=’,‘+=’,‘-=’,‘*=’,‘%=’
4.3 js比较运算符
‘’,‘=’,‘!=’,’!==’,’>’,’<’,’<=’,’<=’,’?’
‘a’ > ‘b’ 字符串比较的是asc码 (a为97,A为65)false
‘1’ > ‘8’ false
‘10’ > ‘8’ false
undefined == undefined // true
Infinity == Infinity // true
NaN == NaN // false
4.4 js逻辑算符
‘&&’,‘||’,‘!’
undefined,null, “”,0,false,NaN 此6个值转为布尔值为false
- &&
先看第一个表达式转换成布尔值的结果,如果结果为真,那么他会看第二个表达式转换为布尔值的结果,然后如果只有两个表达式的话,只看到第二个表达式,就可以返回该表达式的值了。
var a = 1 && 2 + 2;
console.log(a) // 结果为4
- ||
div.onclick = function (e) {
// ie里window.event 有值,非ie里用e
var event = e || window.event
}
- !
把值变成布尔值
4.5 js类型运算符
typeof(返回变量的类型)
instanceof(返回 true,如果对象是对象类型的实例)
4.6 js位运算符
‘&’,‘|’,‘~’,‘^’,‘<<’,‘>>’,‘>>>’
运算符的优先级:
‘=’优先级最低,()优先级最高;
赋值运算符的优先级低于算数运算符
赋值的顺序从右向左;
计算的顺序从左往右;
var a = 1,b = 2;
b%= a + 3; // b = b%(a+3)
console.log(b);
结果:2