前端面试查缺补漏
文章平均质量分 90
前端面试查缺补漏
°PJ想做前端攻城狮
始终相信不能更进一步不是因为困难,而是畏惧困难的自己。所以想做前端攻城狮的PJ正在将键盘敲烂的路上,一直敲
展开
-
10分钟理解ES6箭头函数
前言面试中,ES6 是一大考点,当被问到箭头函数时,我们都会说:箭头函数很好用,而且再也不用操心 this 的指向了。面试官:箭头函数是挺好用的,那有哪些不适合使用箭头函数的场景呢?箭头函数在大多数情况下,是很好用的,但是为什么在有些场景,使用箭头函数后会产生问题?是不是箭头函数还不够完善?又有哪些场景会发生问题?该如何解决呢?为了防止血案的产生,重新吧这一块拎出来整理巩固一下。概念ES6允许使用箭头(=>)定义函数,箭头函数提供了一种更加简洁的函数书写方式,箭头函数多用于匿名函数的定原创 2021-04-10 16:07:24 · 14516 阅读 · 23 评论 -
10分钟理解函数柯里化
前言最近,在准备面试,看到这样一道编程题,原题如下:// 写一个 sum 方法,当使用下面的语法调用时,能正常工作console.log(sum(2, 3)); // Outputs 5console.log(sum(2)(3)); // Outputs 5这道题要考察的,就是对函数柯里化的理解。让我们先来解析一下题目的要求:如果传递两个参数,我们只需将它们相加并返回。否则,我们假设它是以sum(2)(3)的形式被调用的,所以我们返回一个匿名函数,它将传递给sum()(在本例中为2)原创 2021-04-10 15:31:04 · 672 阅读 · 1 评论 -
细说call、apply以及bind的区别和用法
前言上一篇文章 this的指向问题及用法 中,提到了 call 和 apply。它们最主要的作用,是改变 this 的指向。在平时的开发中,除了在写一些基础类,或者公用库方法的时候会用到它们,其他时候 call 和 apply 的应用场景并不多。不过,突然遇到的时候,需要想一下才能转过弯来。所以今天,就让我们好好地探究一下,这两个方法的区别以及一些妙用。最后,还会介绍与之用法相似的 bind 的方法。call 和 apply 的共同点它们的共同点是,都能够改变函数执行时的上下文,将一个对象的方原创 2021-04-10 15:24:43 · 612 阅读 · 1 评论 -
this的指向问题及用法
前言最近,在准备面试,看到这样一道编程题,原题如下:// 写一个 sum 方法,当使用下面的语法调用时,能正常工作console.log(sum(2, 3)); // Outputs 5console.log(sum(2)(3)); // Outputs 5这道题要考察的,就是对函数柯里化的理解。让我们先来解析一下题目的要求:如果传递两个参数,我们只需将它们相加并返回。否则,我们假设它是以sum(2)(3)的形式被调用的,所以我们返回一个匿名函数,它将传递给sum()(在本例中为2)原创 2021-04-10 14:47:13 · 1684 阅读 · 5 评论 -
从输入URL到看到页面发生的全过程(含三握手,四挥手详解)
从输入URL到看到页面发生的全过程总体来说分为以下几个过程:浏览器的地址栏输入URL并按下回车。浏览器查找当前URL是否存在缓存,并比较缓存是否过期。DNS解析URL对应的IP。根据IP建立TCP连接(三次握手)。HTTP发起请求。服务器处理请求,浏览器接收HTTP响应。浏览器收到HTTP响应,浏览器解析渲染页面。关闭TCP连接(四次挥手)。1, 输入URL并按下回车。url一般包含这几个部分:知识点:协议:主要是HTTP协议,HTTPS协议,FTP协议,FILe协议域名:原创 2021-04-09 19:49:14 · 861 阅读 · 0 评论 -
常见的http状态码
面试官:说一说常见状态码代表不同的含义?RFC 规定 HTTP 的状态码为三位数,被分为五类:1xx: 表示目前是协议处理的中间状态,还需要后续操作。2xx: 表示成功状态。3xx: 重定向状态,资源位置发生变动,需要重新请求。4xx: 请求报文有误。5xx: 服务器端发生错误。接下来就一一分析这里面具体的状态码。1xx: 信息性状态码。100 :接收的请求正在处理。101 : Switching Protocols。在HTTP升级为WebSocket的时候,如果服务..原创 2021-04-08 20:34:10 · 520 阅读 · 0 评论 -
JS判断是苹果系统(ios)还是安卓系统(Android)或者PC端
前言今天看到一道面试题,JS判断是否是苹果系统(ios)和安卓系统(Android)客户端,一下就涉及到自己的知识盲区,赶紧亡羊补牢一下。顺便在拓展一下是pc还是移动端?pc端的话,又是在什么浏览器运行?JS判断是否是苹果系统(ios)和安卓系统(Android)客户端?<--!通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端。代码如下--> <script type="text/javascript"> var u = na原创 2021-04-07 23:38:57 · 14918 阅读 · 1 评论 -
CommonJS模块与ES6模块的区别
转载请注明出处:CommonJS模块与es6模块的区别CommonJS对于基本数据类型,属于复制。即会被模块缓存。同时,在另一个模块可以对该模块输出的变量重新赋值。对于复杂数据类型,属于浅拷贝。由于两个模块引用的对象指向同一个内存空间,因此对该模块的值做修改时会影响另一个模块。当使用require命令加载某个模块时,就会运行整个模块的代码。当使用require命令加载同一个模块时,不会再执行该模块,而是取到缓存之中的值。也就是说,CommonJS模块无论加载多少次,都只会在第一次加载时运行一次,转载 2021-04-07 22:50:14 · 424 阅读 · 0 评论