搞懂JS闭包

闭包(Closure)是JS比较难懂的一个东西,或者说别人说的难以理解, 本文将以简洁的语言+面试题来深入浅出地介绍一下。

作用域和作用域链

在将闭包之前,需要先讲一下作用域。

JS中有全局作用域和局部作用域两种。

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

相信大家对于HTTPS协议都不陌生,但是应该存在以下疑问:

  1. HTTPS协议到底是如何运作的?

Javavscript基础——this指向

本文研究一下Javascript的this指向。

Javascript的this指向问题,有些人可能觉得很简单,有些人却觉得扑朔迷离,看完本文之后相应会对this的掌握有一个直观的判断,而不是”开局全靠猜”。

敲黑板

Javavscript基础——原型和原型链

本文研究一下Javascript的核心基础——原型链和继承。

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

原型链

MDN上对于原型链的解释:

leetcode(4)——寻找两个有序数组的中位数

本文是力扣算法的第四篇,讲解寻找两个有序数组的中位数。

Question

给定两个大小为 m 和 n 的有序数组 nums1nums2

搞懂JS变量提升

本文讲解Javascript变量提升引起的问题以及如何规避。

问题

今天看到一道有意思的面试题,考察的还真是JS的基本功,题目如下:

1
2
3
4
5
6
7
8
9
10
var name = "world";

(function(){
if(typeof name === "undefined") {
var name = "Jack";
console.log("Hello " + name);
} else {
console.log("Hello " + name);
}
}());

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

本文是力扣算法的第三篇,讲解无重复字符的最长子串问题。

Question

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

leetcode(2) —— 两数相加

本文是力扣算法的第二篇,讲解两数相加问题。

Question

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

leetcode(1) —— 两数之和

本文是力扣算法的第一篇,讲解两数之和问题。

问题

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

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

本文是NestJs的第九篇,讲解拦截器。

拦截器是一个实现了NestInterceptor接口且被@Injectable装饰器修饰的类。

img

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×