搞懂JS闭包

2019-10-14
阅读 2 分钟
2.2k
闭包(Closure)是JS比较难懂的一个东西,或者说别人说的难以理解, 本文将以简洁的语言+面试题来深入浅出地介绍一下。 作用域和作用域链 在将闭包之前,需要先讲一下作用域。 JS中有全局作用域和局部作用域两种。 全局作用域任何地方都能访问,而局部作用于只有内部能访问。 {代码...} 在上面的例子中会报错,num不存在。...

HTTPS协议是如何保证安全的?

2019-10-11
阅读 3 分钟
4.3k
相信大家对于HTTPS协议都不陌生,但是应该存在以下疑问: HTTPS协议到底是如何运作的? HTTPS是如何解决HTTP协议的不安全特性的? HTTPS网站抓包为什么要信任证书? HTTP协议 HTTP协议是一个应用层协议,通常运行在TCP协议之上。它是一个明文协议,客户端发起请求,服务端给出响应的响应。 由于网络并不是可信任的,HTTP协...

Javascript基础——this指向

2019-09-27
阅读 4 分钟
2.2k
前几天发布的Javavscript基础——原型和原型链 收藏转化率还挺高,看来大家对于JS基础知识还是很看重的,由于JS语言设计的关系,很多语言特性不是那么清晰。比如经典的this在哪的问题。

Javavscript基础——原型和原型链

2019-09-23
阅读 4 分钟
2.7k
对于使用过基于类的语言(如Java或C#)的人来说,Javascript的继承有点难以搞懂,因为它本身没有class这种东西。(ES6中引入了class关键字,看上去也像传统的OOP语言,但是那只是语法糖,底层还是基于原型)。

搞懂JS变量提升

2019-09-21
阅读 1 分钟
1.7k
本文讲解Javascript变量提升引起的问题以及如何规避。 问题 今天看到一道有意思的面试题,考察的还真是JS的基本功,题目如下: {代码...} 根据if条件可以得出可能的答案: Hello world Hello Jack 正确答案 答案是Hello Jack,但是答案怎么来的,回答不好可能还是只能打50分,有以下两种理解: 理解1: 立即执行函数有独...

leetcode(3)——无重复字符的最长子串

2019-09-16
阅读 3 分钟
1.9k
欢迎跟着夏老师一起学习算法,这方面我自己的基础很薄弱,所以解题方法和思路也会讲的很”小白“,不需要什么基础就能看懂。 关注公众号可以进行交流和加入微信群,群内定期有系列文章分享噢! Question 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例1: {代码...} 示例2: {代码...} 示例3: {代...

leetcode(2) —— 两数相加

2019-09-12
阅读 2 分钟
2.2k
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

leetcode(1) —— 两数之和

2019-09-12
阅读 2 分钟
2.2k
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

NestJs学习之旅(9)——拦截器

2019-09-10
阅读 5 分钟
4.4k
欢迎持续关注NestJs之旅系列文章 拦截器是一个实现了NestInterceptor接口且被@Injectable装饰器修饰的类。 拦截器是基于AOP编程思想的一种应用,以下是常用的功能: 在方法执行之前或之后执行额外的逻辑,这些逻辑一般不属于业务的一部分 转换函数执行结果 转换函数执行时抛出的异常 扩展函数基本行为 特定场景下完全重...

NestJs学习之旅(8)——管道

2019-08-28
阅读 5 分钟
4.9k
欢迎持续关注NestJs学习之旅系列文章 管道 熟悉Linux命令的伙伴应该对“管道运算符”不陌生。 {代码...} "|" 就是管道运算符,它把左边命令的输出作为输入传递给右边的命令,支持级联,如此一来,便可以通过管道运算符进行复杂命令的交替运算。 NestJs中的管道有着类似的功能,也可以级联处理数据。NestJs管道通过@Injecta...

NestJs学习之旅(7)——路由守卫

2019-08-27
阅读 6 分钟
8.2k
传统的Web应用中去检测用户登录、权限判断等等都是在控制器层或者中间件层做的,而在目前比较推荐的模块化与组件化架构中,不同职责的功能建议拆分到不同的类文件中去。

NestJs学习之旅(6)——异常处理

2019-08-26
阅读 6 分钟
7.4k
欢迎持续关注NestJs之旅系列文章,关注公众号可以获得最新的教程! 传统的异常处理 在前面的内容中我们介绍了NestJs的几大常用组件,但是有一点没有做出说明,当我们的应用需要中断此次请求且输出错误信息时,我们需要怎么做? 这个问题有两种解决办法: services层直接返回中断请求的响应对象,controller直接输出该对...

Socks5代理协议

2019-08-24
阅读 4 分钟
22.5k
Socks5代理协议 或许你没听说过socks5,但你一定听说过SS,SS内部使用的正是socks5协议。 socks5是一种网络传输协议,主要用于客户端与目标服务器之间通讯的透明传递。 该协议设计之初是为了让有权限的用户可以穿过防火墙的限制,访问外部资源。 1. RFC地址 socks5协议规范rfc1928 socks5账号密码鉴权规范rfc1929 2. 协...

NestJs学习之旅(5)——中间件

2019-08-23
阅读 3 分钟
4.1k
欢迎持续关注NestJs之旅系列文章 中间件 中间件是在路由处理程序之前调用的函数。中间件函数可以访问请求和响应对象。 使用过koa和express的朋友应该知道,中间件是一个很核心的功能,尤其是koa,核心就是中间件,连路由功能都是由中间件提供的。 中间件可以提供以下功能: 运行过程中执行任意代码 对请求和响应进行更改...

NestJs学习之旅(4)——模块系统

2019-08-22
阅读 3 分钟
6.5k
欢迎持续关注NestJs之旅系列文章 模块 NestJs中模块是构建和组织业务单元的基本元素。使用@Module()装饰模块来声明该模块的元信息: 本模块导出哪些服务提供者 本模块导入了哪些依赖模块 本模块提供了哪些控制器 每个NestJs至少有一个跟模块,这个就是app.module.ts定义的。根模块一般不放具体的业务逻辑,具体业务逻辑...

NestJs学习之旅(3)——服务提供者

2019-08-21
阅读 5 分钟
3k
服务提供者是NestJs一个非常重要的概念,一般来说,被装饰器@Injectable()修饰的类都可以视为服务提供者。服务提供者一般包含以下几种:

NestJs学习之旅(2)——控制器

2019-08-20
阅读 5 分钟
4.1k
MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。 控制器(Controller)- 负责转发请求,对请求进行处理,处理完毕后输出响应。 视图 (View) - 界面设计人员进行图形界面设计 模型 (Model)- 数据库查询和业务逻辑

NestJs学习之旅(1)——快速开始

2019-08-19
阅读 3 分钟
4.5k
Nest(或NestJS)是一个用于构建高效,可扩展的Node.js服务器端应用程序的框架。它使用渐进式JavaScript,内置并完全支持TypeScript(但仍然允许开发人员使用纯JavaScript编写代码)并结合了OOP(面向对象编程),FP(功能编程)和FRP(功能反应编程)的元素。

TS简明教程(4)——装饰器

2019-08-08
阅读 3 分钟
5.7k
装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,访问符,属性或参数上。 装饰器使用@expression这种形式,expression必须是一个函数,它会在运行时被调用,被装饰的声明信息做为参数传入。

TS简明教程(3)

2019-07-30
阅读 3 分钟
1.7k
泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。

TS简明教程(2)——类与接口

2019-07-29
阅读 5 分钟
2.3k
传统JS使用函数和原型链进行集成,在ES6出现了class关键,JS也能使用传统OOP的方式进行继承,但是还是存在一定的局限性,在TS中,OOP已经和传统语言差不多。

手把手从零开始小程序单元测试(附避坑指南以及源码跟踪)

2019-07-27
阅读 6 分钟
9.4k
单元测试是一个老生常谈的话题,基于Web/NodeJs环境的测试框架、测试教程数不胜数,也趋于成熟了。但是对于微信小程序的单元测试,目前还是处于起步状态,这两天在研究微信小程序的测试,也遇到了一些坑,在这里记录一下,希望给看到本文的小伙伴带来一点帮助,少走一些弯路。

使用Typescript装饰器来劫持React组件

2019-07-26
阅读 2 分钟
4.5k
最近在捣鼓Typescript的装饰器,NodeJs项目的装饰器比较好理解,但是React项目的装饰器由于有JSX,走了一点弯路,但是总之来说是新技能get

TS简明教程(1)

2019-07-26
阅读 4 分钟
4.6k
TypeScript是JavaScript的一个超集,支持 ECMAScript 6 标准。TypeScript可以在任何浏览器、任何计算机和任何操作系统上运行,并且是开源的。Typescript由微软开发,与C#出自同一人之手!

NodeJs简明教程(11) - 完结篇

2019-07-25
阅读 1 分钟
3k
NodeJs简明教程将从零开始学习NodeJs相关知识,助力JS开发者构建全栈开发技术栈! 关注获取更多NodeJs精品文章 本文是NodeJs简明教程的完结篇,将对以往文章进行归档。 系列文章 NodeJs简明教程(1)——简介 NodeJs简明教程(2)——安装 NodeJs简明教程(3)——HTTP服务器 NodeJs简明教程(4)——文件系统 NodeJs简明教程(5)——路径 N...

NodeJs简明教程(10)

2019-07-25
阅读 2 分钟
2.1k
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。RFC 768描述了 UDP。

NodeJs简明教程(9)

2019-07-24
阅读 3 分钟
2.1k
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。

NodeJs简明教程(8)

2019-07-23
阅读 4 分钟
1.6k
NodeJs简明教程将从零开始学习NodeJs相关知识,助力JS开发者构建全栈开发技术栈! 关注获取更多NodeJs精品文章 本文是NodeJs简明教程的第八篇,将介绍NodeJs 子进程 模块相关的基本操作。 child_process 模块提供了衍生子进程的能力(以一种与 popen(3) 类似但不相同的方式)。 NodeJs的JS线程虽然是单线程,不能利用多...

NodeJs简明教程(7)

2019-07-22
阅读 3 分钟
1.6k
大多数 Node.js 核心 API 构建于惯用的异步事件驱动架构,其中某些类型的对象(又称触发器,Emitter)会触发命名事件来调用函数(又称监听器,Listener)。

NodeJs简明教程(6)

2019-07-21
阅读 4 分钟
2.3k
NodeJs简明教程将从零开始学习NodeJs相关知识,助力JS开发者构建全栈开发技术栈! 本文是NodeJs简明教程的第六篇,将介绍NodeJs crypto模块相关的基本操作。 crypto 模块提供了加密功能,包括对 OpenSSL 的哈希、HMAC、加密、解密、签名、以及验证功能的一整套封装。 Hash Hash类是用于创建数据哈希值的工具类。 哈希算...