2021-01-15

面试题整理:

v-for和v-show有什么区别?

应用场景不一样,如果切换频率不高,页面中的元素直接隐藏起来不显示就用v-for,切换频率较高就用v-show,原理是样式的display: block和hidden来实现的,不会添加和删除DOM元素。

new关键字做了那4件事情?

创建了一个新的对象,
将构造函数的作用域赋给新对象(将this指向它)
执行构造函数的代码
返回这个新的实例对象

冒泡排序

双重for循环,外层循环决定趟数,内层循环决定次数,内层循环中,两个数直接比较,如果前面一个数大于后面一个数,直接交换,以此类推,每趟循环中最大的那个数就会像冒泡一样排到后面

快速排序

规定一个基准值,把比基准值大的放在左边,比基准值小的放在右边。在重新在左边和右边又分别重新找一个基准值,以此类推,直到不能拆分为止

防抖和节流

防抖:在一段时间内,执行多次事件,取消前一个事件执行后面一个事件,所以以此类推,就只会执行最后一次事件。控制执行的次数。

节流:在一段时间内,无论触发多少次事件,但是只执行一次。控制执行的频率。

http状态码有什么含义?

1XX 请求等待处理
2XX请求成功
3XX重定向状态码,需要附加其他操作才能完成请求
4XX客户端错误码
5XX服务器错误码
302 临时重定向 资源URL已经临时转到其他位置,以后还有可能改变
304 资源已经找到,但是没有满足条件,直接返回304
400 请求语法错误
404 请求路径错误

html5新加了什么东西

html5是HTML的新版本语言,新增了元素,行为,属性。
新增了新的标签,增强性表格,音频和视频,canvas绘图,svg绘图,地理定位,拖放API, storage, worker, socket,

CSS3新增的特性

圆角(border-radius),阴影(box-shadow),边框图片
文字特效(text-shadow), 强制换行(word-wrap),线性渐变
transform(英文意思是变形,转型)这里是旋转,后面叫度数
translate(英文意思为翻译的)这里为定位
还有很多css选择器(nth-child,last-child等),媒体查询,多栏布局,rgba(),calc布局

css3里面的4大特效

transition:(过渡)常用于颜色的渐变,元素过渡的属性,类型,过渡时间,持续时间。
transform: 常用于动画,主要包括水平移动,旋转,伸缩,倾斜
Animation:匀速,快到慢啊,平滑啊
translate: 决定移动的方向X,Y

布局方式

自适应,单列,双列,三列,flex,响应式

bfc

块级元素格式化上下文,一个独立的css渲染布局区域,里面的子元素不会影响到外面的布局,规定的内部的布局方式与外部的毫无关系。
作用是:
1.防止margin重叠
2.防止高度塌陷
3.不会与float box重叠
4.清除浮动

ES5的ES6区别

es全称ECMAscript是JavaScript的核心,规定了js的组成部分,语法,类型,关键字,保留字,等等
1.库的引用,es5是require一个库成为一个对象,然后来用,
es6直接import出来用,就不用创建一个对象。
新增了新的特性:let ,const,for…of,箭头函数,结构赋值,数组解构,新增了新的数据类型symbol,set集合map集合

let和const和var

es6新增的声明变量的方法,块级作用域。var会变量提升,let和const不会变量提升,const声明的是常量,以后不会改变,而let有块级作用域和暂时性死区,没有声明这个变量,无法访问到该变量,为undefined

redece()方法

用于数组求和,二维数组变一维数组,算属性的和,算数组中一个元素出现的次数。

cookie 和sessionStorage和localStorage

首先要说的是他们的存在都是为了存储一些信息,当你下次浏览的时候,能很快的给你推出特定的内容,先说sessionStorage和localStorage,主要是时效的区别,session是关闭浏览器,失效就结束,缓存清除。而local是如果不手动删除,就一直存在那里,而cookie与他们的区别,首先是存储大小的差别。cookie不能超过4K,而storage两兄弟可以达到5M及以上,cookie的作用就是经常为存储登录信息,网站字体,背景色,购物车啊,分析用户的偏好,比较友好,所以像点心一样,但是缺乏数据操作接口,会影响性能。storage就要大一些,以节约带宽。这里要提的几个方法…storage.clear(),…storage.setItem() ,…storage.getItem()…storage.removeItem()
还有两个数据类型转换的方法:
JSON.parse()转换为数组或对象
JSON.stringify()转换为字符串

前端的轮询

客户端不断的想服务端发送请求,不论服务端返回什么,客户端还是会不断的发送请求

setTimeout和setInterval

setTimeout在指定时间内只执行一次,而setInterval在指定时间内可以执行多次
尽量不要用后一种,因为它有几个问题:
1.无视代码错误,如果setInterval执行的代码由于某个原因,发生错误,他还是会执行
2.无视网络延迟。不管带宽,服务器过载,网速啊他还是会一直轮询,发送Ajax请求
3.不保证执行,如果你调用的函数需要很长一段时间才会执行,某些调用会直接忽略。

Ajax

原理:http协议异步通信,局部更新数据,不用重新加载页面
原生Ajax的五大步骤:

  1. 创建XMLHttprequest对象
  2. 调用这个对象的open方法
  3. 调用setRequestHeader这个方法(get请求不用)
  4. 调用onReadyState方法来监听
  5. send()
    Ajax如何中断请求?
    Ajax.abort(),中断请求,不过只能阻止前端的消息接收

axios

axios是通过实现promise对Ajax的封装,相对的jQ对Ajax的封装

mvvm

这是一个框架,这里的M指的是Model,数据模型。而V是view,是视图模型。两两要进行数据交互,互相影响。所以必须要找一个中间联系的纽带,而VM就是纽带。VM指的是viewmodel,VM要与M数据传输,他们的方式是双向的,VM和V的方式也是双向的,不过不一样的是他们是双向绑定关系,是直接影响的关系

es6中的import和export是干嘛的?

1.导入导出模块化关键字
2.export导出一个对象需要import * from * 来引入

原型

引用类型(比如构造函数导出的实例对象的隐式原型) 是__proto__
函数的原型是prototype
原型链:对象有一个隐式原型__proto__属性,指向他的构造函数的prototype属性,而这个构造函数的prototype原型里面__proto__属性指向上一层函数的prototype,就这样一层层往上找。直到object的prototype,这里也可以说明在代码的世界里万物皆为对象。
而这个原型链的作用呢,也主要为继承,实际的作用点为类组件的继承,继承component的东西

数组去重

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值