![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 81
进阶__前端
这个作者很懒,什么都没留下…
展开
-
vue前端项目优化方式
压缩js和css之类的。显然这些都是必须做的,而且已经根本不是主要的性能优化的关键点。一、 gzip压缩web前端项目,静态资源基本都放在cdn上,gzip的压缩是非常必要的,它直接改变了js文件的大小,减少两到三倍。nginx的gzip配置非常简单,在你对应的域名底下,添加下面的配置,重启服务即可。gzip_comp_level的值大于2的时候并不明显,建议设置在1或者2之间。# 开启gzipgzip on;# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩gzip_min_le原创 2022-04-07 09:13:58 · 391 阅读 · 0 评论 -
使用Promise完成数据的限制并发请求
需求:需要保证代码在多个异步处理之后执行,我们通常会使用Promise.all(promises: []).then(fun: function);Promise.all可以保证,promises数组中所有promise对象都达到resolve状态,才执行then回调那么会出现的情况是,你在瞬间发出几十万http请求(tcp连接数不足可能造成等待),或者堆积了无数调用栈导致内存溢出.这个时候需要我们对HTTP的连接数做限制。实现//promise并发限制class PromisePool {原创 2021-03-26 09:22:40 · 1096 阅读 · 1 评论 -
CSS面试题
盒模型组成是什么?,box-sizing有什么作用?盒模型:margin(外边距)padding(内边距)border(边框) content(内容)box-sizing:content-box /border-box / inherit有以下三个属性1:content-box:指定元素的宽度和高度(最小/最大属性)适用于box的宽度和高度,元素的填充和边框布局和绘制指定宽度和高度除外.2 :border-box:指定宽度和高度(最小/最大属性)确定元素边框box,对元素指定宽度和高度原创 2021-02-06 18:46:22 · 375 阅读 · 0 评论 -
HTML 面试
HTML常见面试题HTML5特性有哪些?语义化的做法有哪些,具体指的什么?你了解浏览器标准模式和怪异模式吗?产生原因:现代的浏览器一般都有两种渲染模式:标准模式和怪异模式,在标准模式下,浏览器按照HTML和CSS标准对文档进行解析和渲染;而在怪异模式下,浏览器则按照旧有的非标准的实现方式对文档进行解析和渲染,这样的话,对于旧有的网页,浏览器就会启动怪异模式,就能够使得旧网页正常显示;对于新的网页,则可以启动标准模式,使得新网页能够使用HTML和CSS的标准特性。XHTML与HTML有什么区原创 2021-02-06 18:11:02 · 155 阅读 · 0 评论 -
JS 面试
1、已知如下对象,请基于es6的proxy方法设计一个属性拦截读取操作的例子,要求实现去访问目标对象example中不存在的属性时,抛出错误:Property “$(property)” does not exist (2018 今日头条)// 案例代码const man = { name:'jscoder', age:22}// 补全代码const proxy = new Proxy(...)proxy.name // "jscoder"proxy.age // 22prox原创 2021-03-06 09:59:43 · 567 阅读 · 0 评论 -
Javascript 面试题
js的基本类型有哪些?引用类型有哪些?null和undefined的区别。如何判断一个变量是Array类型?如何判断一个变量是Number类型?(都不止一种)。从原型入手,Array.prototype.isPrototypeOf(obj);也可以从构造函数入手,objinstanceofArray根据对象的class属性(类属性),跨原型链调用toString()方法。Array.isArray()方法。isNaN()是一个函数,用isNaN判断一个变量,返回一个Boolean值。若返回的值为f原创 2021-02-08 15:17:41 · 791 阅读 · 0 评论 -
浏览器相关面试题
为什么会有跨域的问题出现?跨域,指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制,防止他人恶意攻击网站比如一个黑客,他利用iframe把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名和密码登录时,如果没有同源限制,他的页面就可以通过JavaScript读取到你的表单中输入的内容,这样用户名和密码就轻松到手了。前端安全XSS,CSRF这些是什么?xss:跨站脚本攻击。xss攻击的主要目的是想办法获取目标攻击网站的cookie原创 2021-02-09 17:53:17 · 251 阅读 · 0 评论 -
性能优化及相关问题
性能优化1.CDN的用法是什么?什么时候用到2.如何优化dom操作的性能。3.单页面应用有什么SEO方案?相关问题正则表达式.发展及应用:前期,正则表达式被广泛地应用到各种UNIX或类似于UNIX的工具中,如:Perl内部集成了正则表达位,在主流的计算机开发语言中(delphi、Scala、PHP、C#C++JavascriptRuby以及Python正则表达式的特点是:1.灵活性、逻辑性和功能性非常强2.可以迅速地用极简单的方式达到字符串的复杂控制3.对于刚接触的人来说,比较晦原创 2021-02-26 14:34:48 · 254 阅读 · 0 评论 -
数据结构相关问题
1.基本数据构:(数组、对列、链表、堆、二叉树、嘻哈表等等)数组:数组是最最基本的数据结构,很多语言都内置支持数组。数组是使用一块连续的内存空间保存数据,保存的数据的个数在分配内存的时候就是确定的。(如图所示)链表:存储的数据在地址空间上可连续,可不连续,链表中的每一个节点都包括数据和指向下一个地址的指针,查找数据的时间复杂度为O(n),方便数据的增删。栈:栈是一种先入后出的逻辑结构,每次加入新的元素和拿走元素都在顶部操作。对列:是一种先入后出的逻辑结构,对于元素的操作分别在队头和队尾,原创 2021-02-25 20:59:59 · 298 阅读 · 0 评论 -
计算机网络相关面试题
HTTP和HTTPS的区别https协议需要到ca申请证书,一般免费证书很少,需要交费。http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。HTTP协议头包含哪些重要部分,HTTP状态码。HTTP协议头包括通用头,请求头,响应原创 2021-02-09 17:20:11 · 152 阅读 · 0 评论 -
Node.js 面试
1. 对node.js有没有了解node是运行环境, 也是个新的语言…它本身是基于google的javascriptv8引擎开发 的,因此在编写基于它的代码的时候使用javascript语言. 但是又不同于传统概念的javascript…它的服务端功能以及部分客户端功能必须在服务端运行, 所以它实际上是一种在服务端的开发+运行的javascript语言. 有一点类似于Perl+PHP或者Python的概念. 它本身可以作为HTTPServer, 也可以当作TCPServer用.2.Expr原创 2021-02-25 20:44:09 · 160 阅读 · 0 评论 -
实用的Vue 自定义指令
在 Vue,除了核心功能默认内置的指令 ( v-model 和 v-show ),Vue 也允许注册自定义指令。它的作用价值在于当开发人员在某些场景下需要对普通 DOM 元素进行操作。Vue 自定义指令有全局注册和局部注册两种方式。先来看看注册全局指令的方式,通过 Vue.directive( id, [definition] ) 方式注册全局指令。然后在入口文件中进行 Vue.use() 调用。批量注册指令,新建 directives/index.js 文件import copy from '.原创 2021-02-06 16:56:10 · 183 阅读 · 0 评论 -
Vue 的自我模拟面试
介绍一下Vue的响应式系统Vue为MVVM框架,当数据模型data变化时,页面视图会得到响应更新,其原理对data的getter/setter方法进行拦截(Object.defineProperty或者Proxy),利用发布订阅的设计模式,在getter方法中进行订阅,在setter方法中发布通知,让所有订阅者完成响应。在响应式系统中,Vue会为数据模型data的每一个属性新建一个订阅中心作为发布者,而监听器watch、计算属性computed、视图渲染template/render三个角色同时作为订原创 2021-02-06 16:46:23 · 152 阅读 · 0 评论 -
Vue 的前端架构
本文几乎就是一篇软件设计文档。Vue 中后台项目可能遇到的问题几乎都覆盖了,并且提供了详尽合理的解决方法1.分解需求技术栈考虑到后续招人和现有人员的技术栈,选择 Vue 作为框架。 公司主要业务是 GIS 和 BIM,通常开发一些中大型的系统,所以vue-router 和 vuex 都是必不可少的。 放弃了 Element UI 选择了 Ant Design Vue(最近Element 好像复活了,麻蛋)。 工具库选择 lodash。建立脚手架搭建 NPM 私服。使用 Node 环境开原创 2021-02-06 17:22:35 · 606 阅读 · 1 评论 -
总结 Vue 团队开发的基本配置封装
对于 vue 项目来说,很多刚入门,或者是受业务妥协的朋友大都是从百度CV 一套看得过去的架子,如常见的 D2Admin ,vue-element-admin ,进行一个二次迭代的开发,其项目本身非常的优质,而在其 template中去进行一个更改能够使得项目在一开始有一个很好的基础环境,但是如果没有花时间去琢磨透其中三分明细。在后续排雷来说,无疑是非常的困难的,因此大部分前端团队都会重构出自己的一套基础脚手架封装,有通过webpack进行处理的,也有基于VueCli打造的,最终都是自身团队的财产.原创 2021-02-06 16:30:18 · 250 阅读 · 0 评论 -
JS常用正则及方法
1.邮箱export const isEmail = (s) => { return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)}2.手机号码export const isMobile = (s) => { return /^1[0-9]{10}$/.test(s)}3.电话号码export const isPhone = (s) => { re原创 2021-02-06 15:04:30 · 452 阅读 · 0 评论 -
CSS小技巧
总结日常开发中CSS实现方法解决inline-block元素设置overflow:hidden属性导致相邻行内元素向下偏移.wrap { display: inline-block; overflow: hidden vertical-align: bottom}超出部分显示省略号// 单行文本.wrap { overflow:hidden;/*超出部分隐藏*/ text-overflow:ellipsis;/*超出部分显示省略号*/ white-spa原创 2021-02-06 15:37:32 · 95 阅读 · 0 评论 -
JS 判断数组类型,数组去重,去除重复对象,扁平化等常用方法
判断是否为数组 判断数组类型的方法: var arr=[1,2,3];1.检测类的instanceof console.log(arr instanceof Array) ;true为数组2.判断数组的__proto__属性和Array的prototype是否相等 console.log(Array.prototype==arr.__proto__);//true为数组3.判断构造函数constructorconsole.log(arr.constructor===Array);//原创 2020-11-30 16:56:40 · 356 阅读 · 0 评论 -
ts,前端支付流程,redux异步
1.通过该项目,请简要说明 typescript 比 javascript 的优势在哪?语言层面:• JavaScript 和 TypeScript 都是 ECMAScript 的具体实现• TypeScript 是静态类型,而 JavaScript 是动态类型• TypeScript 扩展了 JavaScript 并且完全包容 JavaScript• 说白了就是给 JavaScript 增加了类型系统• 执行层面: • TypeScript 需要编译 • JavaScript 不需要编译(除原创 2021-02-27 15:22:25 · 333 阅读 · 0 评论 -
手写 new, call, apply, bind, reduce, currying柯里化, 防抖节流 源码
实现 new先用文字描述一下 new 的实现过程新定义一个 json 对象对象 继承 构造函数的原型链将构造函数的 this 指向这个对象根据构造函数的返回值类型返回结果, function myNew(fn) { let obj = {} obj = Object.create(fn.prototype) let args = Array.prototype.slice.call(arguments, 1) // 获取除去fn之外的参数 let resu原创 2020-12-31 17:41:21 · 164 阅读 · 0 评论