前端笔试题(一)

1.vue如何实现数据的双向绑定?

利用v-model 通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布 消息给订阅者,触发相应的监听回调来渲染视图。

2.使用vue渲染大量数据时,如何进行优化(思路)

1.分页:将数据分成多个页面,每次只加载当前页面的数据

2.虚拟滚动:只渲染可见区域的数据,而不是全部数据

3.懒加载:只在需要时加载数据

4.虚拟DOM

5.监听和计算属性

6.nextTick:将渲染任务放到事件循环的下一个tick中执行

7.异步组件:async和await 缓存组件:keep-alive 当在组件之间切换的时候,有时会想保持这些组件的状态,以避免反复重 渲染导致的性能等问题,使用包裹动态组件时,会缓存不活动的组件实 例,而不是销毁它们。

8.v-for v-show和v-if 但是需要注意,一个页面当中不能大量使用v-if,要不然也会造成性能问题。

3.分别写出jQuery、vue、小程序、uniapp中本 地存储数据和接收数据是什么

1.jQuery和vue 本地存储的三种方式:cookie、localstorage、sessionstorage 通过Ajax来从服务器接收数据

2.小程序 wx.setStorageSync(key,data):其中key时数据的键,data时要存储的数 据 可以通过发送网络请求来接收服务器端的数据。使用“wx.request方法发 送请求,并使用回调函数处理返回的数据. uniapp uni.setStorageSync(key,data) 和小程序类似,

3,。在uni-app中也可以通过发送网络请求来接收服务器端的 数据。使用"ni.request方法发送请求,并使用回调函数外理返回的数据。

4.数组去重有哪些方式,请写出1-2种你觉得最优 的方案

set(最优) 一大特性:不允许有重复值的存在 双重for循环 indexof includes

5.var、let、const的区别

1.var: 声明的变量存在变量提升 声明的是全局变量 可以重复声明相同的变量名

2.let 声明的变量不存在变量提升 声明的是局部变量(块级作用域) 不可以重复声明相同的变量名 可以重新进行赋值

3.const 声明的常量不存在常量提升 声明的是局部常量(块级作用域) 不可以重复声明相同的常量名 如果是基本数据类型的话,不允许重新进行赋值;如果是引用数据类型的 话,可以重新赋值。

6.什么时候需要清除浮动,清除浮动的方式有哪 些 什么时候需要清除浮动?

1.父盒子没设高 子盒子使用了浮动 影响到了布局 清除浮动的方式 给父元素加高

2.overflow:hidden 给使用浮动元素后面添加空的块元素,

3.添加clear: both 给使用浮动的父级添加

4.after 伪类 /* #father::after{content: ""; display: block; clear: both;} *

7.行内元素、块级元素、空元素有哪些?

行内元素 span、a、input、button、img、textarea、label(标签为 input 元素定义标注(标记))、 select(单选或多选)

块级元素 div、p、h1-h6、dl、ul、ol、li、table(表格)、td(单元格)

空元素 hr、br、link、template(vue中的)

8.==和===的区别 ==:

只判断值是否正确,可能会有隐式类型转换的情况 ===: 先会判断值是否相等 类型之间不可以进行隐式转换 判断当前值的数据类型是否相等 (三个条件都成立才会达到===).

你可能感兴趣的:(前端,笔记)