vue面试题

第二十天web前端面试题

2019-07-30  本文已影响88人  小程要谦虚

1,什么是事件代理且描述事件代理的原理及为什么要用事件代理?

事件委托也叫事件代理。利用事件冒泡,让自己的触发的事件,让父元素代替执行。

它可以使 (1)性能更优 (2)动态创建的DOM依然具有事件

2,移动端1px问题,为什么会有?如何解决?

因为在移动端,由于屏幕分辨率的不同,现在分为一倍屏,二倍屏,三倍屏。在不同的分辨率上,有可能1像素,被渲染成两个像素,或者三个像素点,所有实际写代码时,写border:1px solid red;时,1px可能被渲染为2px或者3px

1px的解决方案

1.先使用伪类元素实现边框效果,然后通过媒体查询来操控transform: scale来适配不同分辨率

2.使用border-image来代替border

3.使用viewport +rem

3,解释jsonp的原理

ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的js脚本,利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域。

就是利用浏览器可以动态地插入一段js并执行的特点完成的。

4,在工作中你是如何优化自己的代码的?

全组件化

模块化封装

代码重用

避免全局变量(命名空间,封闭空间,模块化 mvc..)

拆分函数避免函数过于臃肿

注释

5,axios是什么?如何使用?描述其实现登录的流程

Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。

1.支持promise

2.提供了一些并发请求的方法

3.提供拦截器

4.可以实例化,进行基础配置

5.提供支持

登录基本流程描述

客户端用户输入账户密码通过API传递给后台,后台收到账户和密码以后就会和数据库中的进行比对,如果都正确,那么就更新用户的状态为已登录。

axios登录和其它最大的区别

就是提供了拦截器功能

6,用JS去掉数组里面重复的数据,并且打印出来

var arr = [a,b,c,d,d,e,a,b,f,g]

上一篇下一篇

猜你喜欢

热点阅读