
面试题
一些面试题
五月dē雪
这个作者很懒,什么都没留下…
展开
-
解决跨域问题
解决跨域问题: 1.cors:解决跨域的第三方插件,服务端设置响应头Access-Control-Allow-Origin:指定可访问资源的域名 2.jsonp:通过script标签中的 src属性 可以跨越同源策略,但是只支持get 请求,用的不多 3.nginx:反向代理 4.Websocket是HTML5的一个持久化的协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案 5.在vue cli 中配置 vue.config.js 文件,在当前开发环境下将 API 请求代理到 另原创 2021-12-01 16:33:02 · 270 阅读 · 0 评论 -
画一条 0.5 px 的线
1.transform:scale(0.5) <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .half-px{/*heig原创 2021-11-04 10:05:52 · 255 阅读 · 0 评论 -
数组扁平化、数组去重
数组扁平化 1、 es6中有提供了一个将数组进行扁平化的方法,第一个参数是指扁平深度,(Infinity是指无限次) let res = arr.flat(Infinity) 2、 也可先转换为字符串,然后用split转换为数组,然后把数组中的每一个字符串转换为数字类型 let res = arr.toString().split(',').map(item => Number(item)) 3、JSON.stringify也可以扁平化数组,但是还...原创 2021-11-03 20:08:41 · 330 阅读 · 0 评论 -
浅拷贝和深拷贝
浅拷贝 指的是创建新的数据,这个数据有着原始数据属性值的一份精确拷贝 如果属性是基本类型,拷贝的就是基本类型的值。如果属性是引用类型,拷贝的就是内存地址 即浅拷贝是拷贝一层,深层次的引用类型则共享内存地址 下面简单实现一个浅拷贝 function shallowClone(obj) { const newObj = {}; for(let prop in obj) { if(obj.hasOwnProperty(prop)){ newObj原创 2021-10-20 11:07:32 · 95 阅读 · 0 评论 -
虚拟DOM(diff算法) 和 真实DOM
虚拟DOM 只是一层对真实DOM的抽象,以JavaScript对象 (VNode节点) 作为基础的树,用对象的属性来描述节点,最终可以通过一系列操作使这棵树映射到真实环境上 在Javascript对象中,虚拟DOM表现为一个Object对象。并且最少包含标签名 (tag)、属性 (attrs) 和子元素对象 (children) 三个属性,不同框架对这三个属性的名命可能会有差别 创建虚拟DOM就是为了更好将虚拟的节点渲染到页面视图中,所以虚拟DOM对象的节点与真实DOM的属性一一照应 虚拟...原创 2021-10-20 09:58:01 · 499 阅读 · 0 评论 -
箭头函数和普通函数的区别
1.箭头函数语法上比普通函数更加简洁 -ES6中每一种函数可以使用形参赋默认值和使用剩余运算符(...arg) 2.箭头函数没有自己的this,它里面的this是继承函数所处上下文中的this -使用call / apply 等任何方式都无法改变this的指向 3.箭头函数中没有arguments(类数组), 只能基于...arg 获取传递的参数的集合(数组) 4.箭头函数不能背new执行, -因为箭头函数没有this 且没有 p...原创 2021-10-13 16:23:52 · 99 阅读 · 0 评论 -
call、apply、bind
call和apply的区别,哪一个性能更好? -call 和 apply 都是Function中的方法,所有函数都是Function的实例,两者都可以改变函数的this指向, 而bind 也可以改变this的指向,但是函数并不会立马执行,而是先进行预处理 call 的性能要比 apply 好一些,特别是当传递的参数超过三个的时候,所有后期开发可以使用call多一些 console.time可以测试出一段程序执行的时间 开始 :console.time ('test') 结束:consol原创 2021-10-13 14:48:15 · 82 阅读 · 0 评论