前端天天面试题积累
文章平均质量分 81
_阿锋丶
这个作者很懒,什么都没留下…
展开
-
反复刷这些javascript手写题,我又变强了(二)
文章目录数组原型方法的实现forEachmapfiltereveryreduce对象原型方法的实现object.assignobject.create手写promise数组原型方法的实现其实下面的这几个方法的写法差不多,参数也只有一些细微差别,但是要考虑到,如果是要返回一个新的数组的方法比如map,reduce都要用到深拷贝forEach这里主要需要注意的就是第一个参数是回调函数,然后这个回调 函数也会有三个参数,分别是元素值,元素索引,遍历数组本身,第二个参数就是数组遍历时this的指向地原创 2021-06-01 09:32:50 · 508 阅读 · 0 评论 -
反复刷这些javascript面试手写题,我感觉我真的变强了(一)
文章目录用正则能实现的手写题实现千分位分隔符实现一个trim()取出连续重复的字符解析url参数为对象形式关于闭包的手写题利用高阶函数实现函数缓存用正则能实现的手写题前段时间刚好复习了正则,所以把正则的写前面实现千分位分隔符题目描述:实现将一个数从各位数开始,每距离一个千分位添加一个分割符 ‘ ,’如输入: 12345678.32423432输出:12,345,678.32423432这道题在最近一两个月的面试中遇到两次,可以分别有字符串和数组的一些方法结合解决,也可以用正则解决,我觉得原创 2021-05-04 21:25:48 · 4186 阅读 · 15 评论 -
面试官问:怎么让localStorage像cookie那样有过期时间
思路昨天被面试官问到时有点蒙,今天考察了一下,l利用封装的思想,只用在设置一个key的是再携带设置另一个时间key,另一个key为你想设置的它的最大生命周期就可以了。获取的时候比较一下这个时间key,如果过期了就remove,获取不到实现需要自定义set和get方法自定义set() function set(key, value, expired) { // 设置好要存储的值 console.log(key, value); localStorage.原创 2021-03-24 10:48:18 · 689 阅读 · 0 评论 -
再一次彻底理解__proto__和prototype
本文是看此片文章后仿写;https://www.cnblogs.com/libin-1/p/6014925.html文章目录前言正文每个实例对象都会有__proto__属性,其被称为隐式原型每一个构造函数都有prototype属性,被称为显示原型每一个实例对象的隐式原型__proto__属性指向自身构造函数的显式原型prototype原型链解读前言是不是你和我一样经常忘记原型和原型链的知识点,忘记prototype和__proto__是啥东西,所以我的标题加了再一次,这东西真的非常重要,但是记不住,原创 2020-09-26 11:51:59 · 374 阅读 · 0 评论 -
精炼js内存泄露和内存溢出
同步个人博客此片文章是作者综合多篇相关文章总结后,臭不要脸的标明为原创。文章目录内存溢出js的垃圾回收机制什么是这里所谓的垃圾和其清楚方法引用计数垃圾收集标记清除法内存泄露定义八大内存泄露的情景及解决办法意外的全局变量计时器或回调函数没被清除被遗忘的时间监听器闭包被遗忘的 ES6 Set 和Map 成员被遗忘的订阅发布事件监听器脱离DOM的引用内存溢出定义:当程序运行需要的内存超过了剩余的内存是,就会爬出内存溢出的错误,可以理解为一种程序运行错误const obj = {}for(let.原创 2020-10-11 20:26:01 · 546 阅读 · 0 评论 -
分别手写一个bind call apply 函数
文章目录前言一、bind,call,apply的区别?二、手写实现这三个函数1.手写call2.手写apply3.手写bind总结前言最近复习ES6时经常遇到这三个函数,发现用途很大,在尾递归,克隆方面都能用到,所以查询网上的资料后,准备好好复习复习一、bind,call,apply的区别?这样的博客相比大家都看到过无数次了,我这么菜都知道了call 和 apply 都是为了解决改变 this 的指向。作⽤都是相同的,只是传参的⽅式 不同。 除了第⼀个参数外, call 可以接收⼀个参数列表原创 2020-09-22 19:13:04 · 489 阅读 · 1 评论 -
new 实现原理
new 实现原理转载 2020-08-02 20:38:28 · 256 阅读 · 0 评论 -
localStorage.setItem()使用
localStorage.setItem()使用转载 2020-07-31 13:21:14 · 3538 阅读 · 0 评论 -
简单易懂且全面的http知识点详细总结
文章目录http状态码什么是http状态码状态码的分类常见状态码http method传统的methods现在的methodsRestful API如何将url设计成一个资源不使用url参数用method表示操作类型http headers常见的Request Headers常见的Response Headershttp状态码什么是http状态码“HTTP状态码(HTTP Status Code)是表示网页服务器超文本传输协议响应状态的3位数字代码。即当服务器收到某种请求时,例如,当用户通过浏览器访问原创 2020-07-28 17:31:20 · 1355 阅读 · 0 评论 -
深入理解async/await语法
文章目录aysnc和await的基础语法aysnc/await和promise的关系async函数返回一个promise对象await相当于.then()try/catch相当于catch异步的本质aysnc和await的基础语法下面是一个加载图片的函数返回promise对象await 接收的是一个promise对象function img_onload(url) { return new Promise( (resolve, reject) => {原创 2020-07-18 12:09:00 · 523 阅读 · 0 评论 -
详细图解js的Event Loop机制
文章目录js如何执行event loop(事件循环/事件轮询)的具体过程总结所有来自截图是慕课网双越老师,此片为自学笔记,如有侵权会立即删除js如何执行从前到后,一行行代码执行。某一行代码报错,则停止下面代码的执行先执行完同步代码,再执行异步代码event loop(事件循环/事件轮询)的具体过程先看一段简单的代码再看一下机制图:下面的call stack是调用栈,用来调用执行代码的,webApIs就是不是ES的语法,调用的是DOM或BOM的一些内容的代码,callback queue原创 2020-07-11 12:42:35 · 556 阅读 · 0 评论 -
快速理解css响应式
文章目录rem,em是什么响应式布局的常用方案响应式 vm/vhrem的弊端什么是网页视口尺寸vw/vhrem,em是什么rem就是响应式的重要单位响应式布局的常用方案下面代码就是对字体实现了响应式,在屏幕宽度<374px的情形下,根元素的字体大小是86px,在>375和<413px的情形下根元素的字体是86px,在大于414px情形下更元素字体大小为110px,所以div中的字体分别为0.1686 0.16100 0.16*110<!DOCTYPE html&原创 2020-07-10 08:52:16 · 271 阅读 · 0 评论 -
css的3中水平居中方式和4中水平垂直居中方式及应用情形速记
文章目录三种水平居中方式及其应用情形inline元素:text-alignblock元素:margin:0 autoabsolute定位过的元素:left:50%;margin-left:负值(元素宽度的一半)四种水平垂直居中方式和应用场景inline元素:设置line-height等于height的值absolute定位过的元素:top:50%;margin-top:负值(元素宽度的一半)absolute定位过的元素:设置transform:translate(-50%,-50%)absolute定位过的原创 2020-07-09 20:40:06 · 447 阅读 · 0 评论 -
line-height如何继承
文章目录先看一到题:下列p元素的行高是多少line-height的几种写法先看一到题:下列p元素的行高是多少…思考………………………答案:20px*200%=40pxline-height的几种写法1. 写数值 如20px2. 写比例 如2/13. 写百分比 如写200%如果是前两种,则子元素就会直接继承数值或比例,但是如果写百分比还要进行相应的计算针对不同写法 回答上面p标签的继承line-height如下:1,如果body...转载 2020-07-08 18:23:44 · 792 阅读 · 0 评论 -
nth-child和nth-of-type的区别
nth-child和nth-of-type的区别转载 2020-07-08 10:36:47 · 118 阅读 · 0 评论 -
圣杯布局和双飞翼布局的理解和对比
文章目录圣杯布局双飞翼布局圣杯布局代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>圣杯布局</title></head><style t原创 2020-07-07 18:41:50 · 161 阅读 · 0 评论 -
你不知道的几个css面试细节问题?
文章目录什么是margin纵向重叠margin的几个属性设置负值会怎样怎样理解BFC什么是margin纵向重叠margin的几个属性设置负值会怎样margin-top和margin-left设置负值,元素向上向左移动如下图:测试原图如果针对item1设置原图中的item1发生改变向上移动20px如果针对item3元素设置item3就会被向左移动20px如下图margin-right设置负值,右侧元素左移,自身不受影响如果用以上原图针对item3设置item4就会向左移动2原创 2020-07-07 11:12:06 · 190 阅读 · 0 评论 -
delete数组的item,数组的length是否会减一
直接来// delete 数组的 item,数组的 length 是否会 -1// 不会,delete数组长度不变let arr = [1, 2, 3, 4]console.log(arr) // [1, 2, 3, 4, 5]delete arr[0]delete arr[2]console.log(arr) // [empty, 2, empty, 4]arr.forEach(item => { console.log(item) // 2 4})运行结果可以转载 2020-07-04 21:10:21 · 1022 阅读 · 0 评论 -
面试之:js的深拷贝和浅拷贝
文章目录什么是深拷贝,浅拷贝深拷贝有哪些方式用JSON下的方法用递归实现什么是深拷贝,浅拷贝拷贝就是复制的意思深拷贝就是完全在另一个地址空间复制当前的值,而浅拷贝就是只复制指向复杂数据类型的指针,并没有创建一个新的地址空间看下面的例子就更加清晰知道了 let book = { name:"局外人", types:{ t1:"中文版", t2:"英文版" }原创 2020-06-04 15:56:27 · 866 阅读 · 0 评论 -
面试题:数组去重的12种方法
面试题:数组去重的12种方法转载 2020-05-15 10:22:14 · 356 阅读 · 0 评论 -
面试积累:javascript判断数据类型发所有方法和封装一个判断数据类型的函数
判断数据类型的方法封装一个判断数据类型的函数转载 2020-05-14 14:30:49 · 256 阅读 · 0 评论 -
面试题:forEach、map、filter、reduce的区别
forEach、map、filter、reduce的区别转载 2020-05-13 20:02:43 · 492 阅读 · 0 评论 -
面试题:get和post请求的区别
文章目录网络请求的基础知识get和post的区别长度限制问题安全性问题get幂等post不幂等区别表总结转载一个讲的很好的链接网络请求的基础知识get和post的区别长度限制问题安全性问题get幂等post不幂等区别表总结转载一个讲的很好的链接get和post区别...原创 2020-05-13 19:45:29 · 1082 阅读 · 0 评论 -
面试题:数组去重复对象
面试题:数组去重复对象转载 2020-05-12 11:02:38 · 168 阅读 · 0 评论 -
面试题积累之TCP传输链接管理(详解图解建立和释放链接三次握手和四次挥手)
文章目录什么是TCP面向链接协议TCP运输链接的三个阶段TCP建立链接要解决的问题TCP建立链接的三次握手图解为什么不是两次握手建立TCP链接释放(四次挥手)什么是TCP面向链接协议TCP运输链接的三个阶段TCP建立链接要解决的问题TCP建立链接的三次握手图解一开始tcp客户和tcp服务器都是关闭状态TCP服务器的b先创建传输控制块用来存储TCP链接的重要信息如下 准备接受tcp客户的链接请求,进入监听状态此时,TCP客户也要先创建传输控制快,然后想TCP服务器发送TCP链接请求,进原创 2020-05-12 08:50:30 · 485 阅读 · 0 评论