文章目录
严格模式
前提:严格模式在IE10以上的浏览器才支持。
开启方式
严格模式的开启方式有两种,一是为脚本开启严格模式,一是为函数开启严格模式。
为脚本开启严格模式
“use strict”; ——放在
为函数开启严格模式
将 “use strict”; 放在函数内第一句,即可为函数开启严格模式。
严格模式中的变化
1.必须先声明变量再使用;
2.严禁删除已声明变量;
3.在全局作用域中this指向undefined;
4.构造函数不加new实例化会报错;
5.定时器函数不变换;
6.事件、对象的this指向还是调用者;
7.函数中的参数不允许重名,不允许在非函数的代码块内声明函数。
高阶函数
定义:对其他函数进行操作的函数。
闭包
定义:有权访问另一个函数内部变量的函数。
特点:
1、函数可以使用全局变量;
2、外部不能使用内部变量;
3、函数使用完的局部变量会销毁。
作用:延伸了变量的作用范围。
其他:函数外面的作用于可以访问函数内部的变量,闭包内直接返回一个函数,外部对闭包进行调用,使用变量接受,再用变量调用。立即执行函数也被成为小闭包,因为它里面任何一个函数都可已使用它的参数。
递归
定义:在函数的内部调动自身,但是容易发生堆栈溢出,所以必须加退出条件。
深浅拷贝
浅拷贝:只拷贝一层数据,深层次的数据只拷贝地址,当更改拷贝出来的深层次数据时,原数据也会跟着变化。
深拷贝:拷贝所有的数据。
浅拷贝的两种实现方式:
for(