- 博客(59)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 动态规划入门及经典基础算法
动态规划入门及经典基础算法(js实现)一、思想与性质二、动画规划过程三、经典模型1.线性模型2.区间模型3.树状模型四、实现的方法五、经典入门算法及代码实现1、爬楼梯2、连续子数组的最大和3、使用最小花费爬楼梯4、按摩师5、打家劫舍6、买卖股票的最佳时机一、思想与性质动态规划的核心思想是把原问题分解成子问题进行求解,也就是分治的思想。那么什么问题适合用动态规划呢?我们通过一个现实中的例子,来理解这个问题。大家可能在公司里面都有一定的组织架构,可能有高级经理、经理、总监、组长然后才是小开发,今天我们
2020-07-20 22:48:31
379
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 七大方法实现扁平化数组
// 使用栈let toOne = function(arr) { let stack = []; let res = []; stack.push(arr); while (stack.length) { let temp = stack[stack.length - 1]; if (temp.length) { let t = temp.shift(); if (Array.isArray(
2020-06-10 21:51:53
183
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 十大排序算法合集超详细--原理、描述、动画、源码、复杂度、稳定性分析
排序算法十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据
2020-06-10 21:51:09
308
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 二叉树的先中后序遍历 -- 递归实现、非递归的栈实现
二叉树的遍历// 树节点对象class TreeNode { constructor(val) { this.val = val; this.left = this.right = null; }}先中后序遍历(递归)// 先序遍历let preOrder = function(root){ if(!root) return []; return [root.val].concat(preOrder(root.le
2020-06-10 21:49:31
146
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 线性表的js实现 -- 顺序表、链表(单链表、双链表、循环链表)
线性表及其逻辑结构线性表的顺序存储结构----顺序表顺序表的基本实现C++#include <iostream>#include <stdlib.h>#define MaxSize 50using namespace std;typedef char ElemType;typedef struct SqList{ ElemType data[MaxSize]; int length;} SqList;// 初始化线性表void InitLi
2020-06-10 21:48:07
481
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 初识数据结构、时空复杂度详细分析
什么是数据结构定义:数据结构 是指所有数据元素以及数据元素之间的关系,可以看作是相互之间存在着某种特定关系的数据元素的集合,即把数据结构看成是带结构的数据元素的集合。(逻辑结构、存储结构、数据运算)逻辑结构(数据结构):面向用户呈现集合:同属于一个集合,无其他关系线性结构:一对一,典型的是线性表。树形结构:一对多,典型的二叉树。图形结构:多对多。存储结构:面向计算机存储顺序存储结构:把逻辑上相邻的节点存储在物理位置上相邻的存储单元里,节点之间的逻辑关系由存储单元的邻接关系来体现,通
2020-06-10 21:47:23
1928
原创 webpack 基础配置指南
前言基础的配置可以分为以下几个方面: entry 、 output 、 mode 、 resolve 、 module 、 optimization 、 plugin 、 source map 、 performance 等webpack 五个核心概念Entry:指示以哪个入口起点开始打包,分析构建内部依赖图。Output:输出打包后的资源 bundles 输出到哪里去Loader:处理非 js 文件(webpack 本身只理解 js)Plugins:插件范围更广的任务。打包优化、压缩、重新定
2021-03-30 10:56:44
987
原创 webpack5在使用UglifyJsPlugin的时候报错:ERROR in *** from UglifyJs Unexpected token: punc «)» ***
webpack5在使用UglifyJsPlugin的时候报错:ERROR in *** from UglifyJs Unexpected token: punc «)» ***报错内容:> ERROR in static/js/app.5d9e92757fe3817d0429.js?t=1606910615956 from UglifyJsUnexpected token: punc «)» [static/js/app.5d9e92757fe3817d0429.js?t=16069106159
2020-12-02 20:17:00
948
原创 Visual Studio Code 常用推荐插件安装及配置详解
Visual Studio Code 常用推荐插件安装及配置详解VSCode 常用推荐插件Chinese (Simplified) Language Pack for Visual Studio Code:适用于 VS Code 的中文(简体)语言包vscode-icons:vscode 的文件、文件夹图标Atom One Dark Theme:vscode 的界面主题Auto Rename Tag:自动重命名标签的插件Auto Close Tag:自动闭合标签的插件Auto Import:
2020-10-13 14:17:57
1399
原创 Git分支管理及命名规范
Git分支管理及命名规范一、分支分类Git主分支(保留分支):master、develop主要分支:Master和Develop。前者用于正式发布,后者用于日常开发。Git辅助分支(临时分支):feature、release、fixbug除了常设分支以外,还有一些临时性分支,用于应对一些特定目的的版本开发。临时性分支主要有三种:功能(feature)分支预发布(release)分支修补bug(fixbug)分支这三种分支都属于临时性需要,使用完以后,应该删除,使得代
2020-10-10 17:56:59
1331
原创 上线部署问题之用户无法获取最新资源
项目发布新版本清理缓存获取最新资源项目背景前端vue项目,基于webpack打包构建发版问题每次修改代码构建发布到测试环境或生产环境后,存在不能获取到最新资源的情况原因-浏览器缓存用户首次访问浏览器会缓存服务器返回的静态资源,下次访问时就直接使用缓存的静态资源浏览器缓存好处:加快响应速度,减少服务访问。浏览器缓存弊端:更新资源或发布新版本时,再次访问就不会获取最新修改的静态资源。css、js等静态资源会被浏览器缓存,所以每次用户访问网页时,浏览器从缓存读取文件而不是从服务器读取文件,导
2020-09-03 15:06:56
570
原创 使用tree生成项目目录树结构
使用tree生成项目目录树结构基于node的treer全局安装:npm install -g treer使用示例:treer -e ./result.txt -i node_modules遍历到result.txt文件,忽略node_modules缺陷:格式固定,参数顺序前后顺序不可随意调换,不能选择目录层级npm详细使用文档:https://www.npmjs.com/package/treer基于node的tree-node-cli全局安装:npm install -g tree-n
2020-09-03 15:06:15
1377
2
原创 element-ui 执行 npm run build:theme 报错 Replace Autoprefixer browsers option to Browserslist config....
学习element(版本2.13.2)源码时,执行npm run build:theme,命令报错报错内容如下: Replace Autoprefixer browsers option to Browserslist config. Use browserslist key in package.json or .browserslistrc file. Using browsers option can cause errors. Browserslist config can b
2020-08-22 23:22:22
754
原创 webpack笔记09 -- js 的 eslint 语法检查及兼容性处理
webpack js 的 eslint 语法检查及兼容性处理 (GitHub)eslint 语法检查1. 下载npm i eslint eslint-loader eslint-config-airbnb-base eslint-plugin-import -D2. 使用语法检查:eslint-loader eslint注意:只检查自己的代码,第三方库不检查 exclude 排除设置检查规则:package.json 中 eslintConfig 中设置airbnb: eslint-c
2020-08-07 10:55:07
380
原创 webpack笔记08 -- css 的提取、兼容、压缩
webpack css 的提取、兼容、压缩 (GitHub)提取 css 成单独文件1. 下载npm i mini-css-extract-plugin -D2. 使用webpack.config.js:const MiniCssExtractPlugin = require('mini-css-extract-plugin')module.exports = { module: { rules: [{ test: /\.css
2020-08-07 10:54:25
160
原创 webpack笔记07 -- 开发环境配置
webpack 开发环境配置 (GitHub)下载npm i clean-webpack-plugin -D配置webpack.config.js:const path = require('path')// 构建index.html文件const HtmlWebpackPlugin = require('html-webpack-plugin')// 清理 build 目录const { CleanWebpackPlugin } = require('clean-webpack-p
2020-08-07 10:53:48
125
原创 webpack笔记06 -- devServer
webpack devServer (GitHub)开发服务器 devServer: 用来自动化(自动化编译、自动打开浏览器、自动刷新浏览器)特点: 只会在内存中打包,不会有任何输出bundle.js启动devServer指令:npx webpack-dev-server1、下载npm i webpack-dev-server -D2、使用webpack.config.jsmodule.exports = { devServer: { // 构建后
2020-08-07 10:52:14
137
原创 webpack笔记05 -- 打包其他资源
webpack 打包 其他 资源 (GitHub)1、下载npm i file-loader -D2、使用webpack.config.jsmodule.exports = { module: { rules: [{ test: /\.css$/, use: ['style-loader', 'css-loader'] }, { test: /\.
2020-08-07 10:51:06
156
1
原创 webpack笔记04 -- 打包图片资源
webpack 打包 图片 资源 (GitHub)打包图片资源1、下载npm i url-loader file-loader -D2、使用webpack.config.jsmodule.exports = { module: { rules: [{ // 处理less资源 test: /\.less$/, // 多个loader use用数组
2020-07-29 17:53:12
169
原创 webpack笔记03 -- 打包Html资源
webpack 打包 html 资源 (GitHub)1、下载npm i html-webpack-plugin -D2、引用const HtmlWebpackPlugin = require('html-webpack-plugin');3、使用webpack.config.jsmodule.exports = { plugins: [ // html-webpack-plugin // 功能:默认创建一个空的html文件,自动引入输出打包的
2020-07-29 17:50:36
131
原创 webpack笔记02 -- 打包css、less等样式资源
webpack 打包样式资源 (GitHub)打包 css 文件1、下载npm i css-loader style-loader -D2、使用webpack.config.js/* webpack配置文件 所有的构建工具都是基于nodejs平台运行 模块化默认采用commonjs*/const path = require('path')module.exports = { // 入口文件 entry: './src/index.js',
2020-07-29 17:47:13
146
原创 webpack笔记01 -- 简介、核心及初体验
webpack 简介、核心及初体验 (GitHub)webpack 简介webpack 是一种前端资源构建工具,一个静态模块打包器(module bundle)。构建工具:.less --构建–> .css ,.js(es6) --构建–> .js(浏览器认识的 js) ,.xxx --构建–> .xxx静态资源打包器:modules dependencies --引入–> chunk 块 --打包–> bundle对于 webpack,前端的所有资
2020-07-29 17:41:13
137
原创 Webpack学习笔记(官网教程)
Webpack学习笔记(官网教程)demo01 安装&起步安装全局安装项目本地安装起步创建一个 bundle 文件使用一个配置文件 webpack.config.jsNPM 脚本(NPM Scripts)demo02 管理资源加载 CSS加载图片加载字体加载数据demo03 管理输出多入口文件设定 HtmlWebpackPlugin清理 /dist 文件夹Manifestdemo04 自动编译代码的简单开发服务器(开发)使用 source map选择一个开发工具1. webpack's Watch
2020-07-26 10:39:02
226
原创 js中的!和!!
一、!的用法!null=true!undefined=true!''=true!100=false!'abc'=false二、!!的用法var a;if(a!=null&&typeof(a)!=undefined&&a!=''){ //a有内容才执行的代码 }//可简化为if(!!a){ //a有内容才执行的代码... }三、总结!!null !!undefined !!'' !!0 !!false//
2020-06-29 19:32:13
153
原创 Vuex笔记
Vuex1. state 状态数据// 方法1this.$store.state.count// 方法2computed: mapState({ // 箭头函数可使代码更简练 count: state => state.count, // 传字符串参数 'count' 等同于 `state => state.count` countAlias: 'count', // 为了能够使用 `this` 获取局部状态,必须使用常规函
2020-06-11 14:00:02
190
原创 JS数组方法
ES5 数组方法1.Array.isArray() 方法用来判断一个值是否为数组。它可以弥补typeof运算符的不足var a = [1, 2, 3];typeof a // "object"Array.isArray(a) // true2.valueOf() 方法返回数组本身var a = [1, 2, 3];a.valueOf() // [1, 2, 3]3.toString() 方法返回数组的字符串形式var a = [1, 2, 3];a.toString() //
2020-06-10 21:50:17
183
原创 手写NodeJs中间件body-parser
const qs = require("querystring"); // 闭包用在哪里? // express,引入中间件的时候,就是用闭包 module.exports = { urlencoded : function(){ //重点就是这个闭包 return function(req, res, next){ let str = ""; ...
2020-06-10 21:42:30
202
原创 NodeJs项目搭建
创建一个文件夹(项目名称)在文件夹里面 创一个 package.json npm init -y // 生成 package.json文件下载相关组件 express MVC框架 cookie-parser 加强读取与解签名,发送自带 express-session 浏览器与服务器会话管理 body-parser 加强post请求解析 multer 简化图片上传 morgan 日志 jade,ejs 模板引擎.
2020-06-10 21:40:13
235
原创 mongodb-node
参考文档https://segmentfault.com/a/1190000002973153https://www.cnblogs.com/jayruan/p/5123754.htmlhttps://www.jianshu.com/p/8af0552831f6node连接mongodb方式一http://www.runoob.com/nodejs/nodejs-mongodb.htmlnode连接mongodb方式二什么是mongoose?基于node的第三方组件,操作mongodb
2020-06-10 21:36:38
163
原创 MongoDB使用
Mongo版本选择https://www.mongodb.comhttp://dl.mongodb.org/dl/win32/x86_64安装MongoDB软件选择完全安装即可 (Complete—>Install)设置环境变量1.找到安装目录,找到mongo命令所在的位置C:\Program Files\MongoDB\Server\3.2\bin将命令配置用户环境中创建文件夹1.非系统盘下(D盘)创建一个 mongodb 文件夹,再创建文件夹db和logd:\m
2020-06-10 21:35:24
153
原创 NodeJs之MySQL连接
dbcon.jsimport mysql from "mysql";import config from "../config/config.js";// 创建连接池 var pool = mysql.createPool(config.mysqlCon); const query = (sql,params,fn)=>{ // 获取连接 pool.getConnection((err,conn)=>{ if (err) { fn(err,null,null);
2020-06-10 21:31:46
251
原创 NodeJs之图片上传
NODEJS后台 const express = require('express'); const multer = require('multer'); const fs = require('fs'); const pathLib = require('path'); let server = express();// 定义上传的文件的路径 let multerObj = multer({dest : './www/upload/'}); ser
2020-06-10 21:27:23
611
原创 NodeJs之express框架
express下载创建// 下载npm install express express-static --save // 创建服务 const express = require("express");var server = express();server.listen(8081);server.use('/', function(req, res){ console.log(req.body); res.end();})express-cookie模块 /
2020-06-10 21:20:12
237
原创 NodeJs之fs(file-system)模块
NodeJs FS 模块fs.stat 检测是文件还是目录 const fs = require ('fs') fs .stat('hello.js', (error, stats) =>{ if(error){ console .log(error) } else { console .log(stats) console .log(`文件:${stats.isFile()}`)
2020-06-10 21:14:39
190
原创 NodeJs之Url模块
URL模块用于解析和处理URL字符串,提供了三个方法:parseformatresolveparse方法将URL解析成一下几部分:href:原始urlprotocal:url协议host:主机host中又包含以下信息:auth:用户认证port:端口hostname:主机名pathname:跟在host之后的整个文件路径search:url中HTTP GET信息,包含了?query:跟search类似,不包含?hash:片段部分,也就是URL#之后的部分示例:var
2020-06-10 21:07:57
181
原创 NodeJs之queryString模块
querystring从字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析。querystring模块只提供4个方法,在我看来,这4个方法是相对应的。这4个方法分别是querystring.parseparse这个方法是将一个字符串反序列化为一个对象。参数:str指需要反序列化的字符串;separator(可省)指用于分割str这个字符串的字符或字符串,默认值为"&"; querystring.parse("name=whitemu&sex=man&
2020-06-10 21:07:06
392
原创 Node之NPM笔记
npm 是世界上最大的开放源代码的生态系统。我们可以通过 npm 下载各种各样的包, 这些源代码(包)我们可以在 https://www.npmjs.com 找到。npm 是随同 NodeJS 一起安装的包管理工具,能解决 NodeJS 代码部署上的很多问题, 常见的使用场景有以下几种:允许用户从 NPM 服务器下载别人编写的第三方包到本地使用。(silly-datetime)允许用户从 NPM 服务器下载并安装别人编写的命令行程序(工具)到本地使用。 (supervisor) 允许用户将自己编写
2020-06-10 21:03:33
158
原创 CommonJs 和 Nodejs 中自定义模块
一、什么是 CommonJs?JavaScript 是一个强大面向对象语言,它有很多快速高效的解释器。然而, JavaScript 标准定义的 API 是为了构建基于浏览器的应用程序。并没有制定一个用于更广泛的应用程序 的标准库。CommonJS 规范的提出,主要是为了弥补当前 JavaScript 没有标准的缺陷。它的终 极目标就是:提供一个类似 Python,Ruby 和 Java 语言的标准库,而不只是停留在小脚本程序 的阶段。用 CommonJS API 编写出的应用,不仅可以利用 JavaScr
2020-06-10 21:00:53
417
原创 gulp的使用
什么gulp ?前端自动化构建工具 之一,市场还有 Grunt,webpack.都是基于nodejs环境.gulp的模块gulp-htmlmin 压缩html,去掉注释,去掉空格等等…gulp-cssmin–>gulp-clean-css,压缩cssgulp-connect 合并js文件gulp-less 自动生成cssgulp-imagemin 压缩图片gulp的方法task 创建人物src 指定资源pipe 管道方法dest 指定目标方法watch ..
2020-06-10 20:58:19
118
原创 babel-cli使用
参照资源https://excaliburhan.com/post/babel-preset-and-plugins.htmlhttps://github.com/jamiebuilds/babel-handbook/blob/master/translations/zh-Hans/user-handbook.md#toc-configuring-babel第一步:安装 npm install babel-cli babel-preset-env --dev第二步:新建一个文件.babe
2020-06-10 20:55:32
254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人