随笔分类 -  面经

摘要:实现数组去重的常用方法 1.利用Set的特性进行去重 1 function unique(arr) { 2 return Array.from(new Set(arr)); 3 } 2.暴力法 1 function unique(arr) { 2 for (let i = 0; i < arr.le 阅读全文
posted @ 2021-05-15 23:27 曹冲字仓舒 阅读(160) 评论(0) 推荐(0)
摘要:使用ES5实现继承的方法 继承是面向对象的三个基本特征之一。继承机制使得子类可以继承父类的(公有)属性和(公有)方法,使程序员无需再次编写相同的代码。子类也可以定义自己的属性和方法,并且可以覆盖父类中的属性和方法,从而使其拥有与父类不同的功能。 1.原型链与原型继承 在JavaScript中,继承机 阅读全文
posted @ 2021-05-11 11:08 曹冲字仓舒 阅读(780) 评论(0) 推荐(0)
摘要:HTTP常用方法 1.GET GET方法用于请求访问已被URI识别的资源,服务器会解析指定资源并将结果返回给客户端。如果客户端请求的资源是文本,服务器通常会将其原样返回。GET方法是幂等的,无论执行多少次都不会改变服务器状态。GET的作用是获取资源,因此它也是可缓存的。 2.POST POST方法用 阅读全文
posted @ 2021-05-06 17:14 曹冲字仓舒 阅读(232) 评论(0) 推荐(0)
摘要:HTTP常用状态码 HTTP状态码用于描述服务器对客户端请求的响应结果。借助状态码,客户端可以知道服务器是否正确处理了自己的请求。HTTP状态码分为五个类别,每个状态码的第一位指定了其所属类别,如下所示。 200 OK 200状态码表示服务器已经正常处理了客户端发送的请求。 204 No Conte 阅读全文
posted @ 2021-05-06 14:09 曹冲字仓舒 阅读(625) 评论(0) 推荐(0)
摘要:JavaScript垃圾回收机制 JavaScript使用垃圾自动回收机制进行内存管理,无需程序员手动分配和释放内存。垃圾回收的基本思路是确定哪些变量不会再次被使用,然后回收这些变量占用的内存。垃圾回收过程是周期性的,垃圾回收程序每隔一段时间会运行一次,垃圾回收也会影响到应用程序的性能。常用的垃圾回 阅读全文
posted @ 2021-05-03 19:43 曹冲字仓舒 阅读(214) 评论(0) 推荐(0)
摘要:JavaScript中判断数据类型的方法 1.instanceof操作符 instanceof是一个二元操作符,其左侧的操作数是一个对象,右侧的操作数是一个(构造)函数。如果左侧的对象是右侧构造函数的实例,instanceof操作符将返回true。事实上,只要构造函数的原型对象位于该对象的原型链上, 阅读全文
posted @ 2021-05-03 14:25 曹冲字仓舒 阅读(162) 评论(0) 推荐(0)
摘要:手写函数柯里化 柯里化是把接收多个参数的函数转换为成接收单一参数的函数并且返回接收剩余参数的新函数的技术。假如我们需要将一个接收三个参数并返回它们的乘积的函数柯里化: 1 const multiply = function (a, b, c) { 2 return a * b * c; 3 } 4 阅读全文
posted @ 2021-05-02 21:15 曹冲字仓舒 阅读(246) 评论(0) 推荐(0)
摘要:reduce方法的实现 reduce方法是一种归并数组的方法,它将从前往后遍历数组,并在所有数组元素的基础上构建一个返回值。reduce接收两个参数,第一个参数是对每个数组元素都会执行的回调函数,第二个参数是可选的初始值。 1 let array = [0, 1, 2, 3, 4]; 2 array 阅读全文
posted @ 2021-04-30 16:21 曹冲字仓舒 阅读(499) 评论(0) 推荐(0)
摘要:call,apply和bind方法的实现 在JavaScript中,call,apply和bind方法用于完成this的显式绑定。call和apply将某个函数的this绑定到通过它们的第一个参数指定的对象上并执行这个函数,而bind将返回一个函数,这个函数的this被绑定到了通过bind的第一个参 阅读全文
posted @ 2021-04-29 20:36 曹冲字仓舒 阅读(220) 评论(0) 推荐(0)
摘要:防抖与节流的实现 防抖和节流的作用是避免事件被高频触发时带来的大量资源消耗,典型的应用场景就是鼠标频繁地点击某个按钮。当一个事件被触发时,防抖函数需要设置一个定时器,如果在指定的时间间隔内事件没有被再次触发就执行回调函数,否则应该清除并重新设置定时器。总而言之,防抖函数需要完成两个功能:1.当事件被 阅读全文
posted @ 2021-04-29 16:40 曹冲字仓舒 阅读(399) 评论(0) 推荐(0)
摘要:Object.create()方法的实现 Object.create()方法用于创建一个新对象并将这个新对象的[[Prototype]]设置为特定的对象。另外,Object.create()方法还有一个可选的参数propertiesObject,这个参数类似于Object.definePropert 阅读全文
posted @ 2021-04-28 19:15 曹冲字仓舒 阅读(606) 评论(0) 推荐(0)
摘要:new操作符的实现 new操作符主要完成了如下工作:1.创建一个对象,并将它的[[Prototype]]设置为指向构造函数的原型对象。2.将新创建的对象绑定到构造函数的this上,并执行构造函数。3.判断构造函数的返回值是否为一个非空对象,如果是,则返回构造函数的返回值,否则返回之前新创建的对象。 阅读全文
posted @ 2021-04-28 14:24 曹冲字仓舒 阅读(194) 评论(0) 推荐(0)
摘要:instanceof的实现 在JavaScript中,instanceof运算符用于检测指定构造函数的prototype属性是否出现在某个指定的实例对象的原型链上。在实现instanceof时需要注意其左侧的操作数必须是对象,而右侧的操作数必须是一个函数。另外,获取null的__proto__属性会 阅读全文
posted @ 2021-04-26 15:38 曹冲字仓舒 阅读(153) 评论(0) 推荐(0)
摘要:关于this的知识点小总结 本文是《你不知道的JavaScript》第二部分第一章和第二章的读书笔记。 一:为什么要使用this 首先来看下我们为什么要使用this。下面的代码显式地将上下文对象传递给函数,这种方式虽然很直观,但显式传递上下文对象会让代码变得越来越混乱。this提供了一种更优雅的方式 阅读全文
posted @ 2021-04-15 13:27 曹冲字仓舒 阅读(198) 评论(0) 推荐(0)
摘要:JavaScript中的call,apply,bind方法 1.call和apply 在JavaScript中,函数也是一种对象,JavaScript函数也有自己的方法。通过call()和apply()方法,我们可以间接地调用函数。这两个方法允许我们指定调用某个函数时的this值,这意味着可以将任意 阅读全文
posted @ 2021-04-10 12:32 曹冲字仓舒 阅读(120) 评论(0) 推荐(0)
摘要:JavaScript数组平坦化的实现 1.递归 1 let flatten = function (array, res = []) { 2 for (let element of array) { 3 if (element instanceof Array) { 4 flatten(elemen 阅读全文
posted @ 2021-04-09 12:50 曹冲字仓舒 阅读(203) 评论(0) 推荐(0)
摘要:1.静态作用域 变量的作用域是程序源代码中的一个区域,在这个区域中变量是有定义的。不同的程序设计语言会采用静态作用域或者动态作用域,JavaScript采用了静态作用域。在使用静态作用域的语言中,由一个声明引入的标识符在这个声明所在的作用域中可见,而且在其作用域嵌套的每个作用域中也可见。当内部被嵌套 阅读全文
posted @ 2021-04-08 22:31 曹冲字仓舒 阅读(177) 评论(0) 推荐(0)