![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
蓬莱老仙
这个作者很懒,什么都没留下…
展开
-
HTML+CSS面试题-简述 flex 布局与 grid 布局,二者有什么不同,伪类和伪元素的区别及应用样式
简述 flex 布局与 grid 布局,二者有什么不同flex 弹性布局;grid 二维布局。flex就是沿着一条线铺下去,这个线可能水平,也可能垂直,这个平铺的方向用flex-direction来控制。所以flex才有换行命令。而且当同级小盒子很多的时候,往往动一发而动全身,很不方便。grid是把盒子用线分成很多份,把小盒子一个个填进去。伪类和伪元素的区别及应用样式伪类:向某些选择...原创 2019-11-24 22:43:52 · 607 阅读 · 0 评论 -
Javascript面试题-js执行机制?简述对 ES6 的了解?javascript原型有什么特点?
js执行机制首先判断JS是同步还是异步,同步就进入主线程,异步就进入异步队列等待异步任务在异步队列中注册函数,当满足触发条件后,被推入主线程同步任务进入主线程后一直执行,直到主线程空闲时,才会去异步队列中查看是否有可执行的异步任务,如果有就推入主进程中简述对 ES6 的了解es6是一个新的标准,它包含了许多新的语言特性和库,是JS最实质性的一次升级。比如箭头函数、字符串模板、gen...原创 2019-11-24 22:40:19 · 148 阅读 · 0 评论 -
小程序相关面试题-小程序关联微信公众号如何确定用户的唯一性?如何实现下拉刷新?
小程序关联微信公众号如何确定用户的唯一性如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 union_id来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 union_id 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,union_id 是相同的如何实现下拉刷新首先在全局 config 中的 w...原创 2019-11-22 19:35:18 · 1261 阅读 · 0 评论 -
小程序相关面试题-小程序的双向绑定与vue哪里不一样?小程序的 wxss 与 css 有哪些不一样的地方?
小程序的双向绑定与vue哪里不一样小程序直接 this.data 的属性是不可以同步到视图的,必须调用:this.setData({ // 这里设置 noBind:true})小程序的 wxss 与 css 有哪些不一样的地方wxss的图片引入需使用外链地址;没有Body;WXSS新增了尺寸单位,WXSS 在底层支持新的尺寸单位 rpx;WXSS 提供全局样式与局部样式使...原创 2019-11-22 19:34:20 · 809 阅读 · 0 评论 -
小程序相关面试题-微信小程序原理?怎么解决微信小程序异步请求问题?
微信小程序原理微信小程序采用 JavaScript WXML WXSS 三种技术进行开发微信的架构,是数据驱动的架构模式,它的 UI 和数据是分离的,所有的页面更新,都需要通过对数据的更改来实现小程序分为两个部分 webview 和 appService 。其中 webview 主要用来展现 UI,appService 有来处理业务逻辑、数据及接口调用。它们在两个进程中运行,通过系统层 JS...原创 2019-11-21 21:20:47 · 324 阅读 · 0 评论 -
JavaScript面试题-多维数组扁平化的四种方法
所谓的数组扁平化就是将多维数组转成一维数组,例如:将多维数组 [[1, 2, 8, [6, 7]], 3, [3, 6, 9], 4] 转成 [1, 2, 8, 6, 7, 3, 3, 6, 9, 4] 的形式,以下为数组扁平化的几种方法方法一:通过递归函数实现1// 多维数组var arr = [[1, 2, 8, [6, 7]], 3, [3, 6, 9], 4]function g...原创 2019-11-21 19:16:39 · 2144 阅读 · 1 评论 -
JavaScript面试题-documentwrite 和 innerHTML 的区别?
document.write 和 innerHTML 的区别主要区别:document.write 是直接将内容写入页面的内容流,会导致页面全部重绘,innerHTML 将内容写入某个DOM节点,不会导致页面全部重绘...原创 2019-11-20 08:46:43 · 314 阅读 · 1 评论 -
JavaScript面试题-任务队列?
任务队列JS 属于单线程任务队列同步任务同步任务是在主线程上排队执行的任务,只有前一个任务执行结束,才能执行下一个任务。异步任务异步任务不进入主线程,而是进入 “任务队列” ,只有 “任务队列” 通知主线程某个异步任务可以执行了,该任务才会进入主线程执行。事件循环所有的同步任务都在主线程上执行,形成一个执行栈;主线程外有一个 “任务队列” ;当异步任...原创 2019-11-20 08:46:08 · 416 阅读 · 0 评论 -
JavaScript面试题-宏任务与微任务?
宏任务&微任务macro-task(宏任务):包括整体代码script,setTimeout,setInterval宏任务所处的队列就是宏任务队列宏任务队列可以有多个micro-task(微任务):new Promise.then(回调),process.nextTick微任务所处的队列就是微任务队列只有一个微任务队列在上一个宏任务队列执行...原创 2019-11-20 08:44:47 · 853 阅读 · 0 评论 -
HTML+CSS面试题-用Flex写一个垂直水平居中示例?三栏布局如何实现?
垂直水平居中实例Html代码<div id="box"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> &...原创 2019-11-20 08:40:27 · 1118 阅读 · 0 评论 -
HTML+CSS面试题-BFC 是什么?IE 的双边距 BUG如何解决?
BFC 是什么?BFC(块级格式化上下文),一个创建了新的 BFC 的盒子是独立布局的,这个区域与外部毫不相干,盒子内元素的布局不会影响盒子外面的元素。在同一个 BFC 中的两个相邻的盒子在垂直方向会发生 margin 重叠的问题触发条件:根元素(例如:html)元素浮动了(float 不为 none)position 为 absolute 或 fixeddisplay 为 inli...原创 2019-11-20 08:30:46 · 188 阅读 · 0 评论 -
JavaScript面试题-什么是闭包,为什么要用它?
什么是闭包,为什么要用它函数嵌套函数;内部函数可以引用外部函数的变量或参数好处、应用:希望一个变量长期驻扎在内存中避免全局变量的污染(代码模块化)私有成员function fun() { let num = 36 console.log(num) return function func() { num++; console.log(num) }}...原创 2019-11-19 21:55:21 · 401 阅读 · 0 评论 -
JavaScript面试题-JavaScript 怎样添加移除移动复制创建查找节点?
JavaScript 怎样添加移除移动复制创建查找节点创建节点createDocumentFragment()//创建一个DOM片段createElement() //创建一个具体的元素createTextNode()//创建一个文本节点添加、移除、替换、插入appendChild() //添加removeChild() //移除replaceChild() //替换in...原创 2019-11-19 21:52:05 · 133 阅读 · 0 评论 -
JavaScript面试题-如何将 url 参数 解析为一个对象?
将 url 参数 解析为一个对象function parseQueryString(url) { // 先将字符串通过 split 方法,以 "?" 为分割符将其分割成数组; // 该数组有两个元素,第一个为空字符串,第二个为 url 参数字符串 let arr = url.split('?') // 将参数字符串以 "&" 符号为分隔符进行分割 let params...原创 2019-11-19 21:51:05 · 1438 阅读 · 0 评论 -
小程序相关面试题-微信小程序有哪些参数传值的方法?如何提高微信小程序的应用速度?
微信小程序有哪些参数传值的方法给HTML元素添加 data-* 属性来传递我们需要的值,然后通过 e.currentTarget.dataset 或 onload 的param 参数获取。但 data- 名称不能有大写字母、不可以存放对象设置id 的方法标识来传值通过 e.currentTarget.id 获取设置的id的值,然后通过设置全局对象的方式来传递数值在 navigato r中添...原创 2019-11-19 21:36:13 · 545 阅读 · 0 评论 -
ES6相关面试题-ES6有哪些新特性?let和var的区别?
Es6有哪些新特性let(定义变量)const(定义常量块级作用域(只对let、const有效)arrow (箭头函数)class 类数据结构 map、set数组解构、对象解构let和var的区别通过 let 声明的变量没有变量提升,不能重复命名;let 只在块级作用域有效(一个{}就是一个作用域 ,for{} 也是一个块作用域);let 有临时失效区(在 let 的作...原创 2019-11-19 21:27:43 · 433 阅读 · 0 评论 -
小程序相关面试题-微信小程序相关文件类型? 如何封装微信小程序数据请求?
微信小程序相关文件类型.js -------- 脚本文件:页面的交互逻辑均在此页面中进行.json ------ 配置文件:用于设置程序的配置效果.wxml ---- 页面结构文件:书写控件,构建页面.wxss ----- 样式文件:类似于css样式,用于美化页面如何封装微信小程序数据请求一、将所有的接口放在统一的js文件中并导出二、在app.js中创建封装请求数据的方法三、在子页...原创 2019-11-18 20:38:31 · 259 阅读 · 0 评论 -
小程序相关面试题-微信小程序支付流程
微信小程序支付流程小程序调用登录接口获取code,传递给商户服务器用来获取用户的openIDtoken的生成以及缓存调用统一下单接口,获取prepay_id,再次签名小程序获取五个参数后,鉴权调起支付appId,nonceStr,package,signType,timeStamp(需要注意的是,这5个参数签名排序的顺序按照ASCII字典序排序)支付回调...原创 2019-11-17 17:23:20 · 1710 阅读 · 0 评论 -
小程序相关面试题-微信小程序登录流程
微信小程序登录流程客户端获得code值,并将code传给第三方服务端微信小程序客户端调用wx.login,获取登录凭证(code),并调用接口,将code发送到第三方客户端第三方服务端用code换session_key和openid小程序客户端端将code传给第三方服务器端,第三方服务器端调用微信服务器端接口,用code换取session_key和openid第三方服务端生成...原创 2019-11-17 17:22:00 · 1300 阅读 · 0 评论 -
Vue相关面试题-vue组件间是怎么通讯的?
vue组件间是怎么通讯的父子组件传值父组件向子组件传值是通过 v-bind 属性绑定的方式(需要自定义一个属性名),将其 data 属性中的值传给子组件。子组件通过 props 属性接收父组件传递过来的数据,该属性的值是一个数组,成员名为自定义属性名的字符串。兄弟组件传值通过空的 Vue 实例(用变量来存储这个实例,例如:Bus),作为中央事件总线,进行通信谁需要数据谁就要提供事...原创 2019-11-17 17:18:03 · 544 阅读 · 0 评论 -
Vue相关面试题-怎样定义组件?
怎样定义组件使用 Vue.extend() 构造器,创建一个“子类”。参数是一个包含组件选项的对象。let mod = Vue.extend({ // 通过 template 设置 组件的 HTML 结构 template: '<h1>使用 Vue.extend 创建的组件</h1>'})// Vue.component( id, [definition] ) ...原创 2019-11-16 16:38:38 · 550 阅读 · 0 评论 -
Vue相关面试题-Vue全家桶有些什么?Vuex 的使用和五个核心?
Vue全家桶有些什么vue核心 + vue-resource + vue-router + vue-cli + vuexVuex 的使用和五个核心VueX 是一个专门为 Vue.js 应用设计的状态管理架构,统一管理和维护各个vue组件的可变化状态Vuex五个核心:state, getters, mutations, actions, modulesstate => 基本数据ge...原创 2019-11-16 16:23:27 · 673 阅读 · 0 评论 -
Vue相关面试题-v-if v-show的区别?
v-if v-show的区别共同点v-if和v-show都是通过判断绑定数据的true或者false来展示的不同点v-if判断为true的时候才会对数据进行渲染,为false的时候吧结构dom删除倾向于对数据一次性操作v-show无论判断是什么都会先对数据进行渲染,为false的时候对dom进行display:none操作,改变数据的值可以使数据显示或者隐藏。用法v-if...原创 2019-11-16 16:22:26 · 228 阅读 · 0 评论 -
Vue相关面试题-Vue的数据双向绑定原理?Vue全家桶有些什么?Vuex 的使用和五个核心?
Vue 的数据双向绑定原理采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫持各个属性 setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调。当把一个普通 Javascript 对象传给 Vue 实例来作为它的 data 选项时,Vue 将遍历它的属性,用 Object.defineProperty() 将它们转为 get...原创 2019-11-15 20:34:02 · 324 阅读 · 0 评论 -
Vue相关面试题-vue怎样请求数据?vue路由是怎么做的(路由的原理)?
vue怎样请求数据vue请求数据有 Vue-resource、Axios、fetchJsonp三种方式。Vue-resource是Vue官方提供的插件,axios与fetchJsonp是第三方插件vue路由是怎么做的(路由的原理)核心原理:更新视图但不重新请求页面路由模式:hash:hash即浏览器url中#后面的内容,包含#。hash是URL中的锚点,代表的是网页中的一个位置,单单...原创 2019-11-14 21:01:23 · 625 阅读 · 0 评论 -
Vue相关面试题-active-class是哪个组件的属性?嵌套路由怎么定义?组件化模块化的区别?
active-class 是哪个组件的属性active-class是vue-router模块的router-link组件中的属性,用来做选中样式的切换;嵌套路由怎么定义一级路由里面使用children数组配置子路由,就是嵌套路由组件化模块化的区别类别目的特点接口成果架构定位组件重用、解耦高重用、松耦合无统一接口基础库、基础组件纵向分层模块隔离...原创 2019-11-14 20:59:01 · 3951 阅读 · 0 评论 -
Vue相关面试题-vue-cli项目中src目录每个文件夹和文件的用法?vuex 是什么,怎么用,哪些功能场景使用它?
vue-cli 项目中src目录每个文件夹和文件的用法assets 文件夹是放静态资源components 是放组件router 是定义路由相关的配置view 视图app.vue 是一个应用主组件main.js 是入口文件vuex 是什么,怎么用,哪些功能场景使用它vuex 是 vue 的状态管理工具只用来读取的状态集中放在store中; 改变状态的方式是提交mutation...原创 2019-11-13 17:36:25 · 2179 阅读 · 0 评论 -
Vue相关面试题-常用的loader和它们的作用?web前端三大框架有哪些优缺点?
常用的 loader 和它们的作用style-loader 将 css 添加到 DOM 的内联样式标签 style 里css-loader 允许将 css 文件通过 require 的方式引入,并返回 css 代码less-loader 处理 lesssass-loader 处理 sassfile-loader 分发文件到 output 目录并返回相对路径url-loader 和 f...原创 2019-11-13 17:33:52 · 524 阅读 · 0 评论 -
Vue相关面试题-为什么 vue 用 axios 不用 ajax?webpack热加载模块的实现原理
为什么 vue 用 axios 不用 ajaxaxios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,本质上也是对原生XHR的封装,只不过它是Promise的实现版本,符合最新的ES规范,它本身具有以下特征:从浏览器中创建 XMLHttpRequest支持 Promise API客户端支持防止CSRF提供了一些并发请求的接口(重要,方便了很多的操作)从...原创 2019-11-12 21:57:49 · 2351 阅读 · 0 评论 -
HTML5面试题-canvas 元素有什么用?HTML5 有哪些新特性,移除了哪些元素?
canvas 元素有什么用HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。 画布是一个矩形区域,开发人员可以控制其每一像素。 canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。HTML5 有哪些新特性,移除了哪些元素增强了图形渲染、影音、数据存储、多任务处理等处理能力绘画 canvas本地离线存储 localStoragesessio...原创 2019-11-11 21:02:22 · 540 阅读 · 0 评论 -
HTML5面试题-HTML5 如何实现离线缓存,有什么特点?
HTML5 如何实现离线缓存,有什么特点实现:缓存清单一个普通文本文件,其中列出了浏览器应缓存以供离线访问的资源,推荐使用 .appcache 为后缀名例如我们创建了一个名为 demo.appcache 的文件,然后在需要应用缓存在页面的根元素(html)添加属性manifest="demo.appcache",路径要保证正确。manifest 文件格式顶行写 CACH...原创 2019-11-10 19:58:14 · 351 阅读 · 0 评论 -
HTML5面试题-浏览器是怎么对html5的离线缓存资源进行管理和加载的?如何处理html5新标签的浏览器兼容问题?
浏览器是怎么对html5的离线缓存资源进行管理和加载在线的情况下,浏览器发现Html头部有 manifest 属性,它会请求 manifest 文件,如果是第一次访问APP,那么浏览器就会根据manifest文件的内容下载相应的资源并且进行离线存储。如果已经访问过APP并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的manifest文件与旧的manifest文件...原创 2019-11-10 19:53:24 · 234 阅读 · 0 评论 -
前端面试题-页面重构过程中需要有哪些常见的前端优化方法?
页面重构过程中需要有哪些常见的前端优化方法网站重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。也就是说是在不改变UI的情况下,对网站进行优化,在扩展的同时保持一致的UI。对于传统的网站来说重构通常是:表格(table)布局改为DIV+CSS使网站前端兼容于现代浏览器(针对于不合规范的CSS、如对IE6有效的)对于移动平台的优化针对于SEO进行优化...原创 2019-11-10 19:51:42 · 317 阅读 · 0 评论 -
Vue相关面试题-语法糖?Vue.js 2.x 双向绑定原理?vuex是什么?
语法糖语法糖是指在不影响功能的情况下,添加某种方法实现同样的效果,从而方便程序开发.Vue.js的v-bind和v-on指令都提供了语法糖,也可以说是缩写。Vue.js 2.x 双向绑定原理核心的 API 是通过 Object.defineProperty() 来劫持各个属性的setter / getter,在数据变动时发布消息给订阅者,触发相应的监听回调是采用数据劫持结合发布者-订阅者模...原创 2019-11-09 16:14:25 · 316 阅读 · 0 评论 -
HTTP相关面试题-什么是持久连接?管线化?
持久连接(HTTP/1.1 支持)HTTP/1.0 使用非持久连接。 HTTP/1.1 默认使用持久连接。非持久连接:每个连接处理一个请求-响应事务。持久连接:每个连接可以处理多个请求-响应事务。HTTP 协议采用 “请求-应答” 模式,当为普通模式时,即非 Keep-Alive 模式时,每个 请求/应答 客户端和服务器都要新建一个连接,完成之后立即断开连接。若使用 Keep-A...原创 2019-11-09 16:12:33 · 352 阅读 · 0 评论 -
HTTP相关面试题-HTTP方法?GET和POST的区别?HTTP 状态码?常见状态码有哪些?
HTTP 方法GET:从服务器上获取数据POST:向服务器传送数据PUT:向指定资源位置上传其最新内容(更新资源)DELETE:请求服务器删除Request-URL所标识的资源HEAD:获取报文首部GET 和 POST 的区别GET 请求在浏览器退回时是无害的,而 POST 会再次提交请求GET 产生的 URL 地址可以被收藏,而 POST 不可以GET 请求会被浏览器主动缓存...原创 2019-11-08 19:45:12 · 192 阅读 · 0 评论 -
HTTP相关面试题-HTTP 协议的特点?HTTP 报文的组成?
HTTP 协议的特点简单快速:客户向服务器请求服务时,只需传送请求方法和路径。灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。无连接: 限制每次连接只处理一个请求;服务器处理完客户的请求,并收到客户的应答后,立即断开连接;采用这种方式可以节省传输时间。无状态: HTTP协议是无状态协议;无状态是指协议对于事务处理没有记忆能力;缺少状态意味着如果后...原创 2019-11-08 19:42:09 · 153 阅读 · 0 评论 -
JavaScript面试题-什么是事件委托?如何自定义事件?
事件委托用来解决后生成元素事件绑定问题。原理:将事件绑定在已存在的父级元素上,当点击子元素时,通过事件冒泡,事件会冒泡到父元素身上。自定义事件使用 Event 构造函数使用 Event 构造函数,自定义事件(只能指定事件名,不能携带数据)let event = new Event('build')获取需要被绑定事件的元素let el = document.querySelecto...原创 2019-11-08 19:40:28 · 291 阅读 · 0 评论 -
JavaScript面试题-绑定事件的方式?如何删除事件?
事件绑定通过 .on 的方式绑定事件,一种事件只能绑定一次,绑定多个相同事件,后面的事件会覆盖前面的事件。通过 addeventListener() 的方式绑定事件,该方式可以给一个元素绑定多个相同事件,该方法 IE8 不支持。target.addEventListener(type, listener[, options]); target 目标对象;type 表示监听事件类型的字符串;...原创 2019-11-07 20:49:58 · 149 阅读 · 0 评论 -
JavaScript面试题-事件源?如何阻止默认事件?Event 对象?
事件源由谁触发了事件事件源就是谁,事件源不一定是绑定了事件的元素(典型例子:事件冒泡);this 的指向:谁的事件,事件处理函数中的 this 就是谁。获取事件源:通过回调函数中的 e 参数的 target 属性即可获取事件源(e.target)阻止默认事件火狐、谷歌e.preventDefault()IEe.returnValue = false将回调函数中的返回值 设...原创 2019-11-07 20:48:04 · 173 阅读 · 0 评论