1. 什么是闭包?
函数和函数内部能访问到的变量(也叫环境)的总和,就是一个闭包。
2. 防抖和节流的应用场景?
(1)都是防止某一时间频繁出发,但原理不同。
(2)防抖是将多次执行变为只执行一次。
(3)节流是将多次执行变为每隔一段时间执行。
(4)防抖:如serch搜索联想,用户在不断输入值时,用防抖来节约请求资源,window触发resize的时候,不断的调整浏览器窗口大小会不断触发这个事件,用防抖来让其只触发一次节流。
(5)节流:如鼠标不断点击触发mousedown(单位时间只触发一次)监听滚动事件,比如是否滑到底部自动加载更多,用throttle来判断。
3. 继承有哪些方法?
(1)原型链继承
(2)借用构造函数继承(伪造对象,经典继承)
(3)实例继承(原型式继承)
(4)组合式继承
(5)继承组合继承
(6)Es6继承extends
4. slice和splice的区别?
(1)splice改变原数组,除了可以删除元素外,还可以插入元素,可以传入三个参数。
(2)slice不改变原数组,接受两个参数。
5. v-show和v-if的区别?
(1)v-show通过修改元素display的css属性控制是否可视,更节省性能开销,频繁切换时建议使用v-show。
(2)v-if是直接销毁和重建Dow达到让元素显示和隐藏,如果只需一次显示/隐藏,建议使用v-if。
6. v-for循环中为什么使用key?
因为起到做一个唯一的标识,Diff算法就可以正确的识别此节点,作用主要为了高效的更新虚拟Dom。
7. Vue的插槽(slot)主要分哪几种?
(1)分三种:默认插槽、具名插槽、作用域插槽。
(2)Vue中的插槽指的是子组件中提供给父组件使用的一个占位符,用标签表示,父组件可以在这个占位符中填充任何模板代码,比如HTML、组件等,填充的内容会替换掉子组件的标签(替换占位符)。
8. Css的那些属性可以继承?哪些不可以?
(1)Css的三大特性:继承性、层叠性、优先级。
(2)可继承:
① 字体系列属性,如:font-size、font-weight等。
② 文本系列属性,如:
(内联元素)color、line-height
(块级元素)text-indent、text-align
③ 元素可见性,如:visibility
④ 列表布局属性,如:list-style
⑤ 表格布局属性:caption-side
(3)不可继承:
① display:规定元素应该生成的框的类型
② 文本属性:text-decoration
③盒子模型的属性
④ 背景属性
⑤ 定位属性
9. 预处理语言增加了变量、函数、混入等强大的功能
10. 为什么要清除浮动?
① 父级没高度 ② 子盒子浮动了 ③ 会影响下面的布局
11. css中有哪些隐藏页面元素的方法?
① 利用display:none来实现
② 利用visibility:hidden来隐藏元素
③ 利用opacity:0
12. 什么是事件循环?
JS中处理异步操作的机制,事件循环机制是事件循环不断的从任务队列中取出任务,并执行其对应的回调函数的过程
13. 什么是柯里化?
一种将接收多个参数的函数转换为接收一个参数并返回一个新函数的过程
14. HTML5新特性有哪些?
HTML5不再仅仅是SGML的子集,而是增加了关于图像、位置、存储、多任务等功能。具体包括绘画canvas、用于媒介回放的video和audio元素、本地离线存储localStorage和sessionStorage、语意化更好的内容元素、新的表单控件、webworker、websocket、Geolocation等
15. 什么是BFC?
块级格式上下文,BFC是页面盒模型布局中的一种CSS渲染模式,相当于一个独立的容器,里面的元素和外部的元素相互不影响。创建BFC的方式包括html根元素、float浮动、绝对定位、overflow不为visable、display为表格布局或者弹性布局等
16. 内元素和块级元素?
内元素不会独立出现在一行,默认的高宽是其内容的高宽,margin和padding值只有左右有效。而块级元素则会独占一行,其宽度默认是容器的100%,可以设置宽度和高度1。
17. Vue3的生命周期 ?
Vue3引入了新的生命周期钩子,包括onBeforeMount、onMounted、onBeforeUpdate、onUpdated、onBeforeUnmount、onUnmounted等,这些钩子函数在Vue组件的不同阶段被调用。
18. Vuex的属性和使用:
Vuex是一个状态管理模式,用于管理共享的状态。它包含state、getters、mutations、actions和modules等属性。State用于存储变量,getters用于从state中派生数据,mutations用于提交更新数据的方法(必须是同步的),actions用于提交mutation或包含异步操作
19. 跨域问题?
跨域问题是由于浏览器同源策略的限制,当在页面上发送ajax请求时,如果当前页面和服务端不同源(协议、域名和端口号不一致),则会产生跨域问题。解决方案包括使用Node中间件跨域(http-proxy-middleware)等。


















