摘要:
URL模块是Nodejs的核心模块之一,用于解析url字符串和url对象 1.url.parse(url_str[,boolean]) url.parse(url_str[,boolean])用于将url字符串转为对象格式。该方法有两个参数,第一个参数为url字符串,第二个为布尔值,可以不写,表示是 阅读全文
摘要:
Multer是一个Node.js中间件,用于处理 multipart/form-data 类型的表单数据,主要用于文件上传,注意:Multer中间件不会处理任何非 multipart/form-data 类型的表单数据。 Multer会自动添加一个body对象及file或files对象到 expre 阅读全文
摘要:
moment、dayjs、date-fns 是三个较为广泛使用的时间库。 安装 三个库的安装分别如下: npm install moment npm install dayjs npm install date-fns 在页面引入: <script src="/node_modules/moment 阅读全文
摘要:
测试的意义是什么? 在编程术语中,测试意味着检查我们的代码是否符合某些期望。例如:一个名为 “ transformer” 的函数应在给定某些输入的情况下返回期望的输出。 测试类型很多,但简单来说测试分为三大类: 单元测试 集成测试 UI 测试 在本 Jest 教程中,我们将仅介绍单元测试,但是在本文 阅读全文
摘要:
JavaScript怎么调用函数?其实在JavaScript中函数有4种调用方式。下面本篇文章就来给大家介绍一下JavaScript函数的4种调用方式,希望对大家有所帮助。 JavaScript函数有4种调用方式,每种方式的不同在于 this 的初始化。 this 关键字 this 是保留关键字。一 阅读全文
摘要:
数组是 js 最常见的一种数据结构,咱们在开发中也经常用到,在这篇文章中,提供一些小技巧,帮助咱们提高开发效率。 1. 删除数组的重复项 var fruits = [“banana”, “apple”, “orange”, “watermelon”, “apple”, “orange”, “grap 阅读全文
摘要:
构造函数创建对象 我们先使用构造函数创建一个对象: function Person() { } var person = new Person(); person.name = 'name'; console.log(person.name) // name 在这个例子中,Person就是一个构造函 阅读全文
摘要:
首先看call和apply,第一个参数就是改变的this指向,写谁就是谁,如果是非严格模式下,传递null或undefined指向的也是window,二者唯一的区别是执行函数时,传递的参数方式不同,call是一个个的传递,apply是把需要传递的参数放到数组中整体传递。 ·func.call([co 阅读全文
摘要:
Array.prototype.flat() 在Array的显示原型下有一个flat方法,可以将多维数组,降维,传的参数是多少就降多少维 let arr = [1, [2, 3, [4, 5, [12, 3, "zs"], 7, [8, 9, [10, 11, [1, 2, [3, 4]]]]]]] 阅读全文
摘要:
if else 是我们写代码时,使用频率最高的关键词之一,然而有时过多的 if else 会让我们感到脑壳疼,例如下面这个伪代码: 是不是很奔溃?虽然他是伪代码,并且看起来也很夸张,但在现实中,当我们无数次 review 别人代码时,都会发现类似的场景,那么我们本文就来详细聊聊,有没有什么方法可以让 阅读全文
摘要:
this的指向是JavaScript中一个经久不衰的热门问题,在不同的场景下指向规则也不同,在此本文总结了this在不同场景下的指向规则以及ES6中新增的箭头函数中this的指向问题。 关于this this提供了一种更优雅的方式来隐式"传递"一个对象引用,因此可以将API设计得更加简洁并且易于复用 阅读全文
摘要:
前言 纯函数 是一个常见的概念,在日常工作中也经常会遇到,它其实非常简单,今天我们来了解一下它的好处以及为什么要使用它。 两个特点 一个函数,如果符合以下两个特点,那么它就可以称之为 纯函数: 对于相同的输入,永远得到相同的输出 没有任何可观察到的副作用 相同输入得到相同输出 我们先来看一个不纯的反 阅读全文
摘要:
良好的设计模式可以显著提高代码的可读性,降低复杂度和维护成本。笔者打算通过几篇文章通俗地讲一讲常见的或者实用的设计模式。 今天先从最简单的一个入手:单例模式。 文中的示例代码会使用 ES6 语法,尽量简化不必要的细节 概念 单例模式(Singleton)属于创建型的设计模式,它限制我们只能创建单一对 阅读全文
摘要:
方法(method)是通过对象调用的JavaScript函数。也就是说,方法也是函数,只是比较特殊的函数。JavaScript中的匿名方法即匿名函数是没有函数名称的函数。 JavaScript中匿名函数的使用: 一、在Javascript定义一个函数一般有如下三种方式: 函数关键字(function 阅读全文
摘要:
前言 关于模块化,最直接的表现就是我们写的 require 和 import 关键字,如果查阅相关资料,就一定会遇到 Commonjs 、CMD AMD 这些名词,以及 Requirejs、SeaJS 等陌生框架。比如 SeaJS 的官网 这样描述自己: “简单友好的模块定义规范,Sea.js 遵循 阅读全文
摘要:
V8 Object 内存结构与属性访问 上世纪九十年代,随着网景浏览器的发行,JavaScript 首次进入人们的视线。之后随着 AJAX 的大规模应用与富客户端、单页应用时代的到来,JavaScript 在 Web 开发中占据了越来越重要的地位。在早期的 JavaScript 引擎中,性能越发成为 阅读全文
摘要:
计时器setTimeout是我们经常会用到的,它用于在指定的毫秒数后调用函数或计算表达式。 语法:setTimeout(code, millisec, args); 注意:如果code为字符串,相当于执行eval()方法来执行code。 当然,这一篇文章并不仅仅告诉你怎么用setTimeout,而且 阅读全文
摘要:
近年来,函数式编程(Functional Programming)已经成为了JavaScript社区中炙手可热的主题之一,无论你是否欣赏这种编程理念,相信你都已经对它有所了解。即使是前几年函数式编程尚未流行的时候,我已经在很多的大型应用代码库中发现了不少对于函数式编程理念的深度实践。函数式编程即是在 阅读全文
摘要:
JavaScript继承概念:js是基于对象的,他没有类的概念,所以实现继承,需要使用js的原型prototype机制或者用applay和call方法实现。 1、原型链继承: 即子类通过prototype将所有在父类中通过prototype追加的属性和方法都追加到Child,从而实现了继承 为了让子 阅读全文
摘要:
程序的运行需要内存。只要程序提出要求,操作系统或者运行时就必须供给内存。所谓的内存泄漏简单来说是不再用到的内存,没有及时释放。为了更好避免内存泄漏,我们先介绍JavaScript垃圾回收机制。 在C与C++等语言中,开发人员可以直接控制内存的申请和回收。但是在Java、C#、JavaScript语言 阅读全文