- 博客(18)
- 收藏
- 关注
原创 使用node中的net模块简单实现网络编程中的消息群发
一.服务端(server)const net = require('net');const server = net.createServer();const clients = []server.on('connection', clientSocket => { // 将当前连接的客户端通信接口存储到数据中 clients.push(clientSocket); clientSocket.on('data', data => { con
2020-07-17 23:59:37 1097
原创 vue项目中使用require.context()进行组件的循环注册
require.context()方法作用:创建当前模块的上下文用法:require.context(directory, flag, regExp)directory: 要导入的当前模块的文件夹目录flag: 是否搜索当前路径的子目录regExp: 要匹配的文件require.context()方法导出模块为一个函数,该函数有三个属性:resolve, keys, id1.resolve() :它返回请求被解析后得到的模块 id2.keys(): 返回当前所有搜索到的文件的数组3
2020-07-14 21:31:44 936
原创 解决webpack配置中区分环境配置文件中的插件webpack-merge报错问题
TypeError: merge is not a functionconst merge = require('webpack-merge');const baseConfig = require('./webpack.base.js');module.exports = merge(baseConfig, { mode: 'development', devServer: { open: true, hot: true, compre
2020-07-08 22:00:03 4539
原创 配置webpack打包多页面应用
配置分为三步配置多入口多入口无法对应一个固定的出口,所以修改filename为[name]变量如果使用了html插件,需要手动配置多入口对应的html文件,将指定其对应的输出文件。entry: { main: './src/main.js', other: './src/other.js' }, output: { path: path.resolve(__dirname, './dist'), filename:
2020-07-06 21:57:43 457 4
原创 解决在配置copy-webpack-plugin插件时报错
配置如下:new CopyWebpackPlugin({ from: path.resolve(__dirname, './src/assets'), to: 'assets' })报错信息ValidationError: Invalid options object. Copy Plugin has been initialized using an options object that does not match the API
2020-07-05 22:35:14 5229
原创 定义一个常量,在对象中引用这个常量时报错,解决办法
问题背景定义了一个常量,然后在一个对象中的属性名中引用该常量中的某个键,然后控制台报错。如下const {log} = console;const STATUS = { OK: 1, ERROR: 2}const handle = { STATUS.OK: () => {log("it's ok")}, STATUS.ERROR: () => {log("it's error")}}let status = 0;handle[status]();
2020-06-30 22:32:49 658
原创 浅谈原生js中的自定义事件
先介绍三个Dom方法createEvent(eventType)作用:用于创建事件eventType: HTMLEvents || MouseEvents || UIEvents (想获取的 Event 对象的事件模块名。)返回值: 新创建的 Event 对象,具有指定的类型。event.initEvent(eventType,canBubble,cancelable)作用:用于初始化事件eventType: 字符串值。事件的类型。canBubble: 事件是否起泡cancelab
2020-06-23 22:59:18 628
原创 用JS实现队列
队列的定义队列与栈一样,都是一种操作受限的线性表。但是与栈不同,队列是仅允许在表的一端进行插入,在表的另一端进行删除。我们把进行插入的一端称为队尾(Rear),把进行删除元素的一端称为对头(Front)。向队列中插入新元素称为进队,新元素进队后就成为新的队尾元素;从队列中删除元素称为出队,元素出队后,其后继元素就成为新的对头元素。特点:先进先出(FIFO)队列的存储结构class SqQueue { constructor() { this.data = [];
2020-06-23 21:59:19 244
原创 用JS实现栈操作
栈的定义栈是一种只能在一端进行插入或删除操作的线性表。其中允许进行插入或删除操作的一端称为栈顶(Top)。表的另一端称为栈底,栈底是固定不变的。栈的插入和删除操作一般称为入栈和出栈。特点:先进后出(FILO)。栈的结构顺序栈const OK = true;const ERROR = false;const {log} = console;class Stack { constructor() { this.data = []; this.top
2020-06-23 00:02:12 692
原创 数据结构与算法(js描述)-- 单链表
单链表什么是单链表?单链表是线性表中的链式存储结构,顾名思义,就是在内存中申请一小块地址空间的结点,该结点存放数据和指针,然后通过指针将这些结点连接成一条链,我们称之为单链表。优点:便于插入和删除,插入和删除的时间复杂度均为O(1)缺点:不便于查找,查找时只能遍历单链表,不能随机存取,而且由于存储指针导致内存密度<1结点结构// 定义node结点class LNode { constructor(data) { this.data = data;
2020-06-19 00:46:38 290
原创 js设计模式之订阅发布模式
订阅发布模式1.什么是订阅发布模式?订阅发布模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所依赖于他的对象都会被通知,并进行相应处理。通俗地讲,比如说我们在抖音上关注了A,那么当A发布动态短视频的时候,系统就会为我们推送A的动态。A就是publisher,我们就是subcriber,系统就是evenBus,发布者发布动态后,系统就会进行过滤,然后相应地推送给相关订阅者。2.实现结构订阅者(Subscriber)把自己想订阅的事件注册(Subscribe)到调度中心(even
2020-06-18 00:44:35 218
原创 浅谈js中的浅拷贝与深拷贝
浅拷贝浅拷贝是指只拷贝第一层的数据,如果有深层嵌套,那么只拷贝其深层的引用。缺点:拷贝之后的复杂数据类型(如object等),如果改变其深层属性那么其原始对象的深层结构的属性值也会一并改变。const {log} = console;const shallowCopy = function (obj) { if (typeof obj === 'undefined') return; if (typeof obj === 'string' || typeof obj === 'n
2020-06-17 22:21:55 205
原创 数据结构与算法(JavaScript描述) -- 线性表(一)
线性表的顺序存储结构与实现一、定义常量const ERROR = false;const OK = true;二、定义顺序表结构class sqList { constructor() { this.Elem = []; // 存储数组 this.length = 0; // 当前长度 }}三、定义顺序表的操作方法class sq...
2020-02-13 23:05:17 153
原创 基于webpack构建React项目
基于webpack构建React项目一、新建一个webpack_react的文件夹,然后用编辑器打开,并在终端窗口输入命令npm init -y快速初始化项目。二、在项目根目录下创建src源代码目录和dist产品目录。在src根目录下建立index.html和index.js在src根目录下建立components、css、js、img文件夹三、安装并配置webpack在终端中运...
2020-01-17 01:04:58 208
原创 使用node环境实现在线编程时的单/多行输入
一、基于node环境实现编程时的单行输入const readline = require('readline');const r1 = readline.createInterface({ input:process.stdin, output:process.stdout})//单行输入r1.on('line',line =>{ let arr = lin...
2019-09-08 16:59:54 412
原创 基于echarts.js实现简单的饼状图的绘制
使用echarts进行数据可视化展示(饼状图)一、echarts的配置使用npm命令进行安装echarts(方法一)npm initnpm install echarts --save引入echarts.min.js的文件<script src="./node_modules/echarts/dist/echarts.min.js"></script>...
2019-09-08 16:10:43 3720 1
原创 利用牛顿迭代法实现对一个整数开平方根(javascript实现)
牛顿迭代法的简介牛顿迭代法(Newton’s method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。牛顿迭代公式的推导设 rrr是 f(x)=0f(x)=0f(x)=0 的根,选取 x0x_0x0作为 xxx的初始近似值,过点(x0,f(x0))(x_0,f(x_...
2019-05-29 20:16:01 1827
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人