![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
浮世万千吾爱有三
这个作者很懒,什么都没留下…
展开
-
【前端面试】常见问题小结
1、如何在node中操作MongoDB数据库node端常见用来操作MongoDB数据库的两个驱动程序(插件)是mongodb和mongoosemongodb插件使用时需要写终端中使用的增删改查语句,使用起来相对繁琐mongoose插件则在终端命令的基础上进行了封装,通过定义一个model模型的方式,在模型的基础上调用封装好的增删改查API对数据库进行操作,从而代码更加简洁,可读性更好。使用mongoose时需要注意的是,对于查询到的mongoose对象,若想往该对象中新增属性,必须提前在model中原创 2020-08-13 23:23:20 · 517 阅读 · 0 评论 -
【前端面试】6种方法实现数组扁平化(数组降维)
本文内容1、介绍数组扁平化(数组降维)的核心思想2、使用6种方法实现数组扁平化核心思想效果// 源数组:[1, [2, [3, [4, 5]]]]// 降维后数组:[1, 2, 3, 4, 5]思路对源数组的所有元素进行遍历,判断遍历的元素是否为数组,若不是数组则.concat()进之前的计算结果中(初始计算结果为空数组[] ),若是数组则递归调用函数继续遍历。6种实现方法1、lodash插件let arr = [1, [2, [3, [4, 5]]]];let .原创 2020-06-28 17:06:09 · 2229 阅读 · 0 评论 -
【前端面试】比较call、apply和bind,手写bind
本文内容1、比较call、apply、bind的相同点和不同点2、手写简单的call、apply、bind比较call、apply和bind相同点都是用于改变this指向;传递参数时,第一个参数是需要改变成的this指向。不同点call传递参数时,从第二个参数开始依次进行传递;apply传递参数时,第二个参数是一个数组,数组里面的每一项依次是向函数传递的参数;bind不会立即执行函数,而是返回一个改变了this指向的新函数,使用bind时可以直接传递参数(优先级高),也可以在新.原创 2020-06-23 22:03:49 · 258 阅读 · 0 评论 -
【前端面试】深浅拷贝的方法、手写深拷贝函数
本文内容:1、三种方法实现对象的浅拷贝2、两种方法实现对象的深拷贝3、实现简单的深拷贝函数浅拷贝方法1:Object.assign()数组let arr = [1, 2, 3, [10, 20, 30]];let newArr = Object.assign(arr);newArr[3][0] = 100;console.log(arr);console.log(newArr);// [ 1, 2, 3, [ 100, 20, 30 ] ]// [ 1, 2, 3, [ .原创 2020-06-22 21:29:41 · 941 阅读 · 0 评论