自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

星辰大海-H的博客

一个菜鸟的心酸成长史

  • 博客(19)
  • 问答 (1)
  • 收藏
  • 关注

原创 JavaScript / Typescript深拷贝

JavaScript / Typescript深拷贝函数/** * 深拷贝函数 * @param value 要拷贝的目标 * @param maxDeep 拷贝的深度限制,如果拷贝时深度超过了这个限制,将直接抛出错误 */export default function deepClone<T>(value: T, maxDeep = 10): T { if (maxDeep < 0) throw new Error('deepClone Error: de

2022-04-04 15:47:42 1936

原创 JavaScript 自定义事件系统

自定义事件系统下面是一个简单的自定义事件系统,内部提供了(比较)完善的类型推导。继承使用或者直接使用都行。代码实现(Typescript / JavaScript)/** * 自定义事件系统,继承使用 * 添加的事件监听函数listener可以通过返回 remove-listener 字符串来移除自身(类型与“once”参数,但比它要更灵活) */export class AbstractEvent<EListener> { protected readonly _e

2022-03-26 19:09:56 1355

原创 循环队列(Typescript/JavaScript)

循环队列的Typescript实现export default class RoundQueue<V> { get [Symbol.toStringTag]() {return 'RoundQueue'} [Symbol.toPrimitive](hint: string): unknown { if (hint === 'string') return `RoundQueue: [ ${this._queue} ]`; else throw n

2022-03-24 14:33:54 971

原创 Web前端日志打印工具

游览器控制台日志打印工具测试需要前端将程序执行过程中的各种数据分门别类的输出到控制台。直接用JavaScript的console系列函数并不能很好的满足要求,需要将他们封装一下。ConsoleLog是一个class类,使用前需要实例化,每个ConsoleLog之间是相互独立的,打印日志时互不干扰。要将日志进行分组打印,需要先调用startLog,分组结束后在调用endLog,之后整个分组内容就会作为一个整体被打印到调试控制台。当然如果因为throw Error等导致了没有成功调用endLog,内部也

2022-03-24 14:19:36 3510

原创 UUID生成策略/算法(JavaScript / Typescript)

UUID生成策略/算法(JavaScript / Typescript)

2022-03-22 19:02:10 3439

原创 1.线性表

1. 线性表线性表:(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。线性表是最基本、最简单、也是最常用的一种数据结构。线性表主要由顺序表示或链式表示。在实际应用中,常以栈、队列、字符串等特殊形式使用。在数据结构逻辑层次上细分,线性表可分为一般线性表和受限线性表。一般线性表也就是我们通常所说的“线性表”,可以自由的删除或添加结点。受限线性表主要包括栈和队列,受限表示对结点的操作受限制。记录:在稍复杂的线性表中,一个数据元素可由多个数据项(

2021-07-23 14:36:15 210

原创 Chrome游览器插件开发踩坑总结

Chrome游览器插件开发最近在尝试开发一个谷歌游览器插件,遇到了不少问题,在这里做一个简单的记录。配置文件manifest.json{ "name": "HEU官网小助手", "description" : "HEU官网小助手", "version": "1.0.0", "manifest_version": 2, "icons": { "16": "image/HEU_icon_16.jpg", "32": "image/HEU_icon_32.jpg",

2021-06-28 20:48:59 5250

原创 求最大公约数 算法

欧几里得算法(辗转相除法)欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。辗转相除法依赖于以下定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。定理证明:假设现在要求整数a,b的最大公约数,其中a > b;记它们的余数为r = a % b,我们容易得到kb + r = a(其中k为正整数),也即r = a - kb;(注意这里r不能为0,因此a不能整除b)定义m为a和b的(任意)公约数;那么r / m = (a - kb)

2021-06-12 21:07:51 234

原创 C/C++动态内存分配

程序内存空间在一个程序的虚拟地址空间中,内存被分成了多个段,常见的有:代码段、数据段、堆空间、栈空间。一般来说栈空间位于虚拟地址空间的尾部,它的地址是”倒着长得“,即栈底大,栈顶小。我们在动态内存分配中使用的内存空间属于“堆空间”。C语言中的动态内存分配在C语言中,动态内存的分配与释放主要通过malloc函数和free函数。malloc函数malloc在C语言中并不属于关键字,它只是一个函数,使用前需要引入头文件。malloc函数的原型如下:#include<stdl

2021-06-10 20:10:22 240

原创 管理学期末考试题

管理学期末考试答案下面共有40道单选题和20道多选题单选题2分/题多选题1分/题我最后的得分是95分,所以下面有几个题的答案应该是错的。加粗选项就为答案单选题实施目标管理的主要难点是?( B )A. 难以有效地控制B. 设置目标及量化存在困难C. 不利于有效地实施管理D. 不利于调动积极性传统组织理论认为,行使权力是为了 ( B )A. 分发挥人的积极性B. 协调人际关系C. 工作的需要D. 协调与外部环境的关系下列哪一形式主要是针对反复出现的业务而制定的? ( C

2021-06-05 12:53:43 3716

原创 Promise对象

专业英语:单词释义promisen. 许诺,允诺;希望pendingadj. 未决定的;行将发生的resolvevi. 解决;决心;分解rejectvt. 拒绝;排斥;抵制;丢弃Promise概述Promise主要是用来处理异步任务的。在JS中,promise的含义是“期约”。ECMAScript 6中全局环境中新增了引用类型Promise,可以通过new操作符来实例化。创建新期约时需要传入执行器(executor)函数作为参数。const

2021-05-01 12:44:29 98

原创 betrothal gifts

2021年4月30日,英语考核之TED演讲稿。自选主题:彩礼(betrothal gifts)彩礼相关信息彩礼是中国古代婚嫁习俗之一,又称订亲财礼、聘礼、聘财等。古代的彩礼中国旧时婚姻的缔结,有在婚姻约定初步达成时互相赠送聘金、聘礼的习俗,这种聘金、聘礼俗称“彩礼”。在古代的订婚仪式上,男方家庭会以订婚男子的名义送给女方一份由寓意喜庆的物品构成的“彩礼”。女方家庭收受彩礼后,也会赠送男方价值相当的财物,称作“回礼”。女方出嫁时,娘家会在彩礼的基础上增添多倍的财物随女方嫁至夫家,称..

2021-04-29 22:13:38 495

原创 1.CSS选择器

CSS选择器概述CSS选择器可以大致分为两类:基础选择器与复合选择器。基础选择器:由单个选择器组成的。常见基础选择器包括:标签选择器类选择器id选择器通配符选择器复合选择器:由两个或多个基础选择器,通过不同的方式组合而成的。常用的复合选择器包括:属性选择器后代选择器子选择器并集选择器伪类选择器…标签选择器直接使用标签名,可以选择HTML标签。div {}p {}span {}类选择器根据class类名选择标签。一个标签可以有多个类名。.c

2021-04-28 21:43:56 89

原创 0.CSS概述

CSS概述层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。CSS规则(rule)是层叠样式表的基本组成单位,它包含一条或多条属性声明。通过选择器匹配并应用到相应的HT

2021-04-28 21:25:37 119

原创 大三互联网大厂前端实习电话面试(一面)

大三了,想尝试着报一些大厂的前端实习招聘,于是就写了一份简历,然后试着投了阿里,腾讯,字节跳动等大厂;决定把一面(电话面试)中遇到的题目都整理一下;先整理一部分,后面还有几场面试,慢慢补充吧。自我介绍略面试题目webpack打包JS代码的大致流程是怎样的?(编译原理)词法分析:语法分析:语义分析:代码优化:目标代码生成:webpack的loader和plugin有什么差别?loader:webpack只能理解 JavaScript 和 JSON 文件,这是 .

2021-04-21 20:02:00 616

原创 栈(数据结构)

栈栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向栈顶加入元素的操作被称为进栈、入栈或压栈。从栈顶取出元素的操作被称为出栈或退栈。栈的代码实现我们使用数组作为栈的实现基础,栈底默认设置为0;对于栈顶指针,我们可以定义它的功能为指向栈顶元素的指针(索引)。因此栈的几种特殊状态可以表示为:栈空:栈顶等于-1。栈满:栈顶等于n-1,其中n为数组的长度。那么栈的Java实现可以为:packag

2021-04-09 20:13:45 283

原创 队列(数据结构)

队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。顺序队列建立顺序队列结构必须为其静态分配或动态申请一片连续的存储空间,并设置两个指针进行管理。一个是队头指针front,它指向队头元素;另一个是队尾指针rear,它指向下一个入队元素的存储位置。顺序队列会存在存储空间的浪费,因为无论是头指针还是尾指针,他们都只能不断向后移动,

2021-04-09 20:08:28 721

原创 树与二叉树(数据结构)

树树型结构是一类非常重要的非线性数据结构,每颗树都有一个根结点。每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。相关概念叶结点或终端结点:度为0的结点称为叶结点;结点的度:一个结点含有的子结点的个数称为该结点的度;树的度:一棵树中,最大的结点的度称为树的度;结点的层次:从根开始定义起,根为第1层,根的子结点为第2层,以此类推;树的高度或深度:定义一棵树的根结点层次为1,其他结点的层次是其父结点层

2021-04-09 20:01:18 146

原创 1.vector相量容器

vector相量容器vector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。#include<vector> using namespace std;v...

2019-10-20 20:16:33 128

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除