JavaScript高阶面试题:(第二天)

目录

6.forEach和map方法的区别

7. js高阶中数组的常用的操作方法

8.什么是严格模式

9.什么是高阶函数?

10.闭包是什么,有什么特性,对页面有什么影响


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语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星河路漫漫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值