编译和解释的优缺点
编译快 跨平台不好 c c++ 解释 快 跨平台 js php java oak
单线程 动画的时候轮转时间片 将动画一点点切割送往js引擎 js引擎执行
浏览器内核
1.chrome webkit/blink safari webkit
2.IE trident
3.firefox Gecko
4.opera presto
类型转化
typeof(NaN) == number; typeof 返回的都是字符串的类型 未经声明的变量放在typeof
不报错
var x = 1;
if(function f(){}){
x+=typeof f;
}
console.log(x)//1undefined
函数
1.声明 表达式忽略名字 var demo = function test(){} demo.name = test demo.lengthx形参的长度 arguments 初始化映射 如果没传的化 就不会改变 undefined
function test(a,b){
a = 3;
b = 2;
console.log(arguments)
}
test(1)
2.递归 找规律 找出口
3.预编译
函数声明整体提升
变量声明提升//函数声明就不用看了,因为已经变量提升了
过程 1)创建AO对象( 执行期上下文)AO{ }
2)把形参和变量声明的名作为对象的属性名 值为undefined
3)实参和形参相统一
4) 将函数名当做对象的属性名 若有则将函数体覆盖为值
注意点
if里不能声明function
typeof(a)=="undefined"