源码共读-Redux 发表于 2023-05-23 | 分类于 源码共读 Redux是优秀的状态管理库,本节我们学习一下Redux源码,由于Redux源码是TypeScript写的,为了方便学习,本节去掉一些类型定义,转化为JavaScript来展示,另外对于错误信息我们这里就先不处理了。 使用Redux官方示例: 1234567891011121314151617181 ... 阅读全文 »
源码共读-Koa 发表于 2023-05-23 | 分类于 源码共读 Koa是基于 Node.js 平台的下一代 web 开发框架,它的源码可以看这里,本章通过源码来简绍一下Koa是怎么实现的。 核心代码Koa的核心代码只有4个文件,如图。 各个文件的作用: application.js:Koa的核心,对应Koa App类。context.js:对应上下文对象ctx ... 阅读全文 »
H5 history API 发表于 2023-04-18 | 分类于 JavaScript 对于JS中history对象我们最常用的就是back()、forward()、go()三个方法,H5新增了pushState()和replaceState()用来无刷新页面来更新URL地址,本章所说的H5 history API也指的是这两个方法。 H5 history API浏览器兼容情况请看这里 ... 阅读全文 »
使用随机数生成器估算π 发表于 2023-03-10 | 分类于 算法 编写函数,使用随机数生成器估算π。 各种计算机语音中都会给出π的具体值,如JavaScript中就有Math.PI,但是如何不使用该值来粗略估算π的值呢? 整体思路:如图所示,在坐标系(x, y)的作用域[-1,1]与值域[-1,1]中随机生成点,点在圆x² + y² = 1内的概率为π / 4 ... 阅读全文 »
计算整数二进制表示中各个1位的数目 发表于 2023-03-10 | 分类于 算法 编写一个函数,确定给定整数的二进制表示中各个1位的数目。 举例:给定一个数字是7,假设是8位操作系统,二进制表示为00000111,其中有3个1,则调用函数返回3。 整体思路:循环统计,检测二进制表示中的最后一位,如果最后一位是1的时候计数器加1,然后把数字右移一位,直到整个数字全部移完。 代码 ... 阅读全文 »
《JavaScript DOM 编程艺术》小记 发表于 2022-07-24 | 分类于 读书笔记 在HTML中的Script块中可以使用HTML注释,甚至可以不写结尾。如,以下代码都是可以正常运行的。 12345<script type="text/JavaScript"> console.log(1); <!-- 运行后打印1 1 --> ... 阅读全文 »
《Web性能实战》读书笔记 发表于 2022-06-04 | 分类于 读书笔记 Web性能调优一直是高级前端必须掌握的技能,市面上不少书简绍性能调优的书总是告诉读者一些理论性的东西,而如何去实践说的却不多,这本书不仅告诉读者Web性能优化的理论知识,同时还会告诉读者怎么用node去设置,是一本前端进阶必看的书。 理解Web性能Web性能主要指网站的加载速度。你可以通过提高网 ... 阅读全文 »
请你挑战一下这几道nextTick面试题 发表于 2021-07-30 | 分类于 JavaScript Vue大家再熟悉不过了,Vue的this.$nextTick大家也再熟悉不过了,今天我们就来看看自创的nextTick相关的几道面试题,看看你是否真正理解Vue的nextTick。 题目1123456789101112131415161718192021222324<template> ... 阅读全文 »
for...of循环的使用 发表于 2021-06-24 | 分类于 JavaScript for…of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。– MDN 基本使用for…of的基本使用比较简单: 12345678910111213141 ... 阅读全文 »
vue2你该知道的一切(下) 发表于 2021-06-19 | 分类于 JavaScript 本章继续回顾Vue相关的知识,主要针对组件这块,基础部分请看上一章。 组件基础简单的组件: 12345678910111213141516<div id="app"> <custom-button></custom-button></ ... 阅读全文 »