Javascript基础
数据类型:
原始值 stack (栈)
Number Boolean String undefined null
引用值 heap(堆)
array Object function ...date RegExp
typeof操作符返回值类型有: number string boolean undefined object function
定义函数
function 函数名() {代码体}
var test = functin test(){}
1. 命名函数表达式
var test = function abc(){}
2.匿名函数表达式 -- 函数表达式
var test = functin () {}
函数名规则,与变量名相似,但是要遵循小驼峰源则
arguments----实参列表
js运行过程:
语法分析------>预编译------->解释执行
函数声明整体提升
变量 声明提升
预编译过程
1.创建AO对象 (Activation Object)
2.找形参和变量声明,将变量和形参名作为AO属性名,值为undefined
3.将实参值和形参统一
4.在函数体里面找函数声明,值赋予函数体
闭包:当内部函数被保存到外部时,将会生成闭包。闭包会导致原有作用域链不释放,造成内存泄漏
闭包的应用:1.实现公有变量 eg函数累加器
2.做缓存 eg eater
3.可以实现封装,属性私有化 eg Person()
4.模块化开发,防止污染全局变量
立即执行函数 执行完就被销毁 针对初始化功能的函数
(function () {
}());
对象的创建方法
1.var obj={} plainObject 对象字面量/对象直接量
2.构造函数
1)系统自带的构造函数 new Object()
2)自定义
构造函数 大驼峰命名规则 TheFirstPerson
call/apply 改变this指向
call需要把实参按照形参的个数传进去
apply需要传一个arguments
this指向
预编译中this指向window
全局作用域里this指向window
call/apply可以改变函数运行时this指向
object.func();func()里面的this指向object
上一篇: JS基础复习(自我总结01)
下一篇: mybatis返回map集合