如何通过100行代码实现一个迷你router?

2021-03-21
阅读 10 分钟
1.6k
知识储备如何操作浏览器地址?我们可以使用下面三种方法,来修改浏览器的地址location.assign(url)window.location = urllocation.href = url(常见)修改以下location对象的属性值,会导致当前页面重新加载 {代码...} 修改hash时,浏览器历史中会新增加一条记录,但是并不会刷新页面。因此SPA应用中,hash也是一种切换...

「每日一问」箭头函数与普通函数有啥区别?

2021-02-11
阅读 4 分钟
2.4k
箭头函数与普通函数有啥区别?ES6普及后,箭头函数越来越多的出现在我们的日常开发中,那么箭头函数与普通函数究竟由什么区别呢?涉及相关知识点new操作符new.targetprototype浏览器事件Object.prototype.definePropertycall、bind、applyprototypearguments对象无this绑定箭头函数没有自己的this,它会从自己的作用域链...

【每日一问】node.js中是如何判断类型的?

2021-01-29
阅读 2 分钟
6.7k
JavaScript中的类型在ECMAScript标准中,一共有八种数据类型:7种原始类型BooleanNullUndefinedNumberBigIntStringSymbolObject那么问题来了,应该如何判断这些类型?下面是node中判断上述类型的相关代码(BigInt除外),基本上基于typeof进行判断。说到typeof那就不得不提下面的话题:知识储备typeof对null类型错误的返...

「一起造轮子」从1.9k的jsonp库出发🏗一起实现jsonp

2021-01-27
阅读 5 分钟
2.2k
1. 什么是jsonp?下方是维基百科对JSON的解释从这个解释中,我们可以知道,完成jsonp需要的步骤主要有以下两点:向页面中插入一个带有请求链接的<script>标签通过回调函数,获取需要的JSON数据2. jsonp库是如何实现的?jsonp是一个star数1.9k的仓库,实现了一个简单的jsonp方法jsonp仓库传送门2.1 传入参数url传入...

「一起造轮子」三种写法实现instanceof

2021-01-25
阅读 2 分钟
2k
如果实例对象(也就是左边传入的值left)__proto__不是强等于构造函数(也就是右边传入的值right)的prototype,就一直朝着实例对象的原型链往上找,直到找到null为止,就证明构造函数的prototype属性并没有出现在实例对象的原型链上。

「一起写轮子」14问带你实现apply和call

2021-01-25
阅读 6 分钟
1.8k
由于call和apply只是入参时的差别,因此只要搞定了call,apply就迎刃而解了。在实现call之前,我们需要搞清楚下面的一些问题:什么是call?call的定义是什么?下面是MDN对call的定义:原版: 中文: call的参数是什么?下面是MDN对call参数的解释:原版: 中文: 第一个参数是thisArg,就是我们在定义中提到的,指定的th...

【附node操作实例】redis简明入门系列—字符串类型

2018-10-04
阅读 1 分钟
1.5k
下面是字符串类型的相关命令 赋值、取值 赋值采用以下命令 {代码...} 如果客户端返回为OK则证明写入成功 取值采用以下命令 {代码...} 如果key值存在,则返回存储的键值hello 如果key不存在,redis会返回nil 递增数字 {代码...} 当要操作的键不存在时默认键值为0,所以运行该指令后结果为1,当键值不为整数时,redis会提...

JavaScript深入理解对象方法——Object.entries()

2017-10-18
阅读 2 分钟
27.7k
Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。

JavaScript深入理解对象方法——Object.defineProperty()

2017-10-18
阅读 6 分钟
2.4k
Object.defineProperties() Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。 语法 {代码...} 参数 obj需要被操作的目标对象 prop目标对象需要定义或修改的属性的名称。 descriptor将被定义或修改的属性的描述符。 返回值 被传递给函数的对象。 描述 该方...

JavaScript深入理解对象方法——Object.defineProperties()

2017-10-17
阅读 3 分钟
3.8k
props要定义其可枚举属性或修改的属性描述符的对象。对象中存在的属性描述符主要有两种:数据描述符和访问器描述符(更多详情,请参阅Object.defineProperty())。描述符具有以下键:

JavaScript深入理解对象方法——Object.create()

2017-10-17
阅读 3 分钟
8.8k
propertiesObject可选。如果没有指定为 undefined,则是要添加到新创建对象的可枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)对象的属性描述符以及相应的属性名称。这些属性对应Object.defineProperties()的第二个参数。

JavaScript深入理解对象方法——Object.assign()

2017-10-17
阅读 5 分钟
6.1k
Object.assign() Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。 语法 Object.assign(target, ...sources) 参数 target目标对象。 sources源对象。 返回值 目标对象。 描述 如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。后来的源的属性将类似地覆...