课程介绍
浅拷贝
深拷贝----------|======>递归
遍历DOM树-------|======>递归------晚上能够把代码写出来是最好的
正则表达式-------很重要的东西
元字符
写几个正则表达式
写代码
正则表达式的案例=========>代码写出来
数组和伪数组的区别
复习
apply和call方法的使用和区别
都可以改变this指向的
使用方式:
函数名.apply (对象,[参数1,参数2,参数3,...]);
函数名.cal (对象,参数1,参数2,参数3,....);
我想要使用其他对象的某个方法, 其他对象.方法名.apply(当前对象,参数,...);
这个方法就会被当前的对象所使用,同时这个方法中的this就是当前的对象,在调用方法的时候改变了this的指向
bind方法的使用和区别
复制一个方法或者是函数,是在复制的同时改变了this的指向
使用方式:
函数名.bind(对象,参数1,参数2,...);------>返回值是复制之后的这个函数
高阶函数---->函数的使用的方式:函数作为参数使用,函数作为返回值使用
函数作为参数使用的时候,这个函数可以是匿名函数,也可以是命名函数
作用域和作用域链及预解析
闭包: 函数中有另一个函数, 或者是一个函数中有另一个对象, 里面的函数或者是对象都可以使用外面函数中定义的变量或者数据, 此时形成闭包
function f1(num){ return function(){ console.log(num); } } f1(20)
闭包模式: 函数模式闭包, 对象模式的闭包
闭包的作用: 缓存数据, 延长作用域链, 同时也是缺点, 函数中的变量不能及时的释放
沙箱: 就是一个环境, 也可以叫黑盒, 在这个环境中模拟外面真实的开发环境, 完成需求, 效果和外面的真实的开发环境是一样的
沙箱避免命名冲突
递归: 函数中调用函数自己, 递归一定要有结束的条件, 否则就是死循环
递归: 一般应用在遍历上
递归轻易不要用,效率很低