欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Javascript基础

程序员文章站 2022-03-04 22:17:28
...

数据类型:

原始值  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基础