前端开发面试题总结

面试题总结

1.this指向
1)函数形式调用,this指向window
2)方法形式调用,this指向调用方法的对象
3)构造函数调用,this指向创建的实例对象
4)call和apply调用,this是指定的那个对象
5)箭头函数
箭头函数的this看外层是否有函数
有,外层函数的this就是内部函数的this
没有,就是window
6)特殊情况:通常意义上this指针指向为最后调用它的对象如果返回值是一个对象,那么this的指向就是那个返回的对象;如果返回值不是一个对象,那么this还是指向函数的实例 。

2.call、apply和bind的区别
三者都可以改变函数的this对象指向。
三者第一个参数都是this要指向的对象,如果如果没有这个参数或参数为undefined或null,则默认指向全局window。
三者都可以传参,但是apply是数组,而call是参数列表,且apply和call是一次性传入参数,而bind可以分为多次传入。
bind 是返回绑定this之后的函数,便于稍后调用;apply 、call 则是立即执行 。
彻底弄懂call、apply和bind区别-知乎

3.forEach和map区别
相同点:
都是循环遍历数组中的每一项
每次执行匿名函数都支持3个参数,分别是item(当前每一项)、index(索引值)、arr(原数组)
区别:1)forEach没有返回值,不会返回执行结果,而是会返回undefined。forEach会修改原来的额数组
map()返回一个新数组,数组中的元素为原始数组调用函数处理后的值
2)forEach方法用来调用数组的每个元素,将元素传递给回调函数
forEach对于空数组不会调用回调函数。无论数组是否为空,都返回undefined。这个只是将数组中的每一项作为callback的参数执行一次
3)forEach的执行速度 < map执行速度
4)使用:forEach适合于你并不打算改变数据的时候,而只是想用数据做一些事情 – 比如存入数据库或则打印出来。
map()适用于你要改变数据值的时候。不仅仅在于它更快,而且返回一个新的数组。这样的优点在于你可以使用复合(composition)(map(), filter(), reduce()等组合使用)来玩出更多的花样。
forEach和map的区别和用法

4.浅拷贝、深拷贝
深复制和浅复制只针对像 Object, Array 这样的复杂对象的。简单来说,浅复制只复制一层对象的属性,而深复制则递归复制了所有层级。
彻底弄懂深浅拷贝

5.MVVM和MVC的区别
mvvm: 即Model-View-ViewModel(模型-视图-视图模型)的简写。
  模型(Model):后端传递的数据
  视图(View):即前端渲染的页面
  视图模型:是 mvvm 的核心,是连接 view 与 model 的桥梁。通过数据双向绑定实现。
  
定义和区别

6.闭包、内存泄漏、垃圾回收机制
js闭包、内存泄漏

7.作用域
12种数组去重方法

8.数组常用方法
js数组常用方法整理

9.localStorage、sessionStorage和Cookies区别
localStorage、sessionStorage和Cookies

10.阻止事件冒泡、阻止默认事件
阻止事件冒泡、取消默认事件

11.同源策略、跨域解决方案
浏览器同源策略及跨域解决方案
浏览器同源策略及跨域解决方案

12.promise函数
JavaScript异步与Promise实现

13.js实现异步加载
csdn
博客园

14.vue组件传值
组件传值

15.vue双向数据绑定
双向数据绑定
表单输入绑定
理解原理

16.computed计算属性原理
computed-源码
实现原理
对比watch侦听器

17.computed和watch区别
计算属性和侦听器
Vue的computed和watch细节分析
vue中methods、watch、computed之间的差别对比以及适用场景
Vue中 computed、methods和watch的区别

18.v-if和v-show区别,如果只是做显隐用哪个更好?
区别分析
区别及使用场景

19.v-for和v-if同时使用,哪个先执行
v-if和v-for一起使用注意规范

20.watch侦听器
watch

21.vue生命周期
vue实例-生命周期

22.vuex原理
vuex从使用到原理解析

23.路由传参
vue中的路由传参
路由传参方法
vue-router传递参数的几种方式

24.虚拟DOM、Diff算法
解析1
解析2

25.渲染函数
vue渲染函数

26.vue $router都有哪些方法
router方法

27.axios拦截器原理
axios拦截器原理及请求等大重发实现
axios拦截器设置及其实现原理剖析

28.undefined和NAN
Javascript 中 null、NaN和undefined的区别总结

29.isNAN返回结果是什么
isNaN 意思是is Not a Number,是不是不能转换为一个数字
W3School

30.rem、px 适配怎么做
px、em、rem区别介绍
移动端如何做rem适配
rem如何实现自适应布局

31.token
什么是token
关于token使用
token作用及实现原理
前后端分离项目,后端是如何处理前端传递的token?
token对于前端代表什么,前后端如何传递token

32.git冲突解决
高级合并
git冲突解决方法

33.vue最大的优势是什么
中文文档上手入门快,轻量级,整个源码js文件不大,双向数据绑定,数据驱动视图组件化,数据和视图分离。
相比传统网页,vue是单页面可以只刷新某一部分。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值