目录
6.forEach和map方法的区别
相同点
1、都是循环遍历数组中的每一项
2、forEach和map方法里每次执行匿名函数都支持3个参数,参数分别是value(当前每一项)、index(索引值)、array(原数组)
3、匿名函数中的this都是指向window
4、只能遍历数组
区别
1、forEach()返回值是undefined,
2、map()返回一个新数组
7. js高阶中数组的常用的操作方法
● arr.forEach(function(){}):遍历数组
● arr.map(function(){}):对数组遍历并操作数组元素,返回操作后元素组成的新数组
● arr.filter(function({}));对数组元素进行过滤,返回符合元素组成的新数组
● arr.find(function(){}):查找数组中符合的元素
● arr.some(function){}):对数组的元素进行判断是否有符合的元素
● arr.every(function){}):对数组的元素进行判断是否全部符合
● arr.find(function){})方法返回符合查找条件的第一个数组元素的值。
● arr.reduce(function(total,value,index,array){},initialValue):方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
8.什么是严格模式
JavaScript 除了提供正常模式外,还提供了严格模式(strict mode)。ES5 的严格模式是采用具有限制性 JavaScript变体的一种方式,即在严格的条件下运行 JS 代码。
严格模式在 IE10 以上版本的浏览器中才会被支持,旧版本浏览器中会被忽略。
设立严格模式的原因:
1、消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
2、消除代码运行的一些不安全之处,保证代码运行的安全;
3、提高编译器效率,增加运行速度;
4、为未来新版本的Javascript做好铺垫。
严格模式下的语法变化:
- 不能不声明变量直接使用
- 函数的this指向,指向undefined
- 函数的参数,不可以重名
- 构造函数如果不使用new实例化,会报错
9.什么是高阶函数?
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
只需满足以下任意一个条件,即是高阶函数:
1. 接受一个或多个函数作为输入
2. return 返回另外一个函数
10.闭包是什么,有什么特性,对页面有什么影响
概念:内部函数访问其所在的外部函数中声明的参数和变量,形成的词法环境叫闭包.
闭包有三个特性:
- 1、函数嵌套函数
- 2、函数内部访问外部函数的参数或变量
- 3、可以使函数中的变量可以长期驻扎在内存
使用闭包的好处:
- 1、变量长期驻扎在内存中
- 2、避免全局变量的污染(多人定义同样名字的全部变量冲突)
- 3、私有成员的存在
使用闭包的坏处:
- 1、常驻内存
- 2、会增大内存的使用量
- 3、使用不当会造成内存泄露
注意:内存泄露:指的是应用程序不再用到的内存,由于某些原因,没有及时释放,就叫做内存泄漏。
会造成内存泄漏的js操作:
1.意外的全局变量
2.未清理的DOM元素的引用
3.被遗忘的定时器或者回调函数
4.闭包
5.过多的console.log语句