#####递归
递归的作用是 一个函数 有结束条件,进行调用自身来实现
#####预编译
一个js文件执行会有
-
解析语法
解析代码语法是否有误,进行下一步操作 -
预编译
全局执行上下文产生----> 变量提升 ----> 函数提升 ----> 执行函数—》 函数产生
函数内部执行上下文 ----> 变量提升 ----> 实参形参相统一 ----> 函数提升 —> 顺序执行方法内的操作 -
执行过程
#####作用域链
一个变量声明在全局上下文中,所有都可以访问,如果声明在局部的上下文,就只能够允许该局部的内部进行访问,当访问局部没有的变量,会从局部的上下文找往上查找全局是否有
#####立即执行函数
声明一个立即执行函数,该函数只执行一次,且函数名称调用失效,
声明方式:(function (){ 方法体 })()
#####闭包
一个函数内部返回内部函数供外部访问使用,且函数拥有父函数的上下文对象使用 称为闭包
#####原型链
每一个声明的对象或者函数都有 原型,顶级原型是 object,object原型往上就是null ,通过 对象.prototype 赋值可以改变该对象原型链的指向
#####this
一个函数this默认是window全局,谁调用当前函数,当前函数的this就是谁,当该函数为构造函数时,this为自己
可以改变this指向的方法 xxx.apply(传入this,[…参数]) || xxx.call(传入this,…参数)
#####arguments
arguments是函数的实参列表,传入的实参可以比形参多,且都可以获取到
#####数组
数据方法
分为改变原数组非改变原数组