自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (5)
  • 收藏
  • 关注

原创 cookie的基本概念

cookie的基本概念一个不大不小的问题cookie的组成如何设置cookie服务器端设置cookie客户端设置cookie总结一个不大不小的问题假设服务器有一个接口,通过请求这个接口,可以添加一个管理员但是,不是任何人都有权力做这种操作的那么服务器如何知道请求接口的人是有权力的呢?答案是:只有登录过的管理员才能做这种操作可问题是,客户端和服务器的传输使用的是http协议,http协议是无状态的,什么叫无状态,就是服务器不知道这一次请求的人,跟之前登录请求成功的人是不是同一个人由于http

2021-05-29 21:20:57 597 2

原创 express(看完还不会用?来打我!!!)

express看完还不会用?来打我!!!express基本使用背景基本使用express中间件一个express处理函数就是一个中间件中间件处理细节错误处理中间件响应静态页面的中间件express.static())express解析body请求体express路由服务端发送http请求报错的统一处理函数express基本使用背景http模块根据不同的请求路径、请求方法,做不同的事情,处理起来比较麻烦读取请求体和写入请求体通过流的方式,比较麻烦基本使用安装expressnpm i

2021-05-29 21:12:37 248

原创 ES6生成器(Generator)

ES6生成器Generator生成器 (Generator)生成器 (Generator)什么是生成器?生成器是一个通过构造函数Generator创建的对象,生成器既是一个迭代器,同时又是一个可迭代对象如何创建生成器?生成器的创建,必须使用生成器函数(Generator Function)如何书写一个生成器函数呢?//这是一个生成器函数,该函数一定返回一个生成器function* method(){}生成器函数内部是如何执行的?生成器函数内部是为了给生成器的每次迭代

2021-05-23 18:13:42 269

原创 ES6迭代器(Iterator)、可迭代协议、for-of循环

ES6迭代器、可迭代协议、for-of循环迭代器背景知识JS中的迭代器可迭代协议 与 for-of 循环可迭代协议for-of 循环展开运算符与可迭代对象迭代器背景知识什么是迭代?从一个数据集合中按照一定的顺序,不断取出数据的过程迭代和遍历的区别?迭代强调的是依次取数据,并不保证取多少,也不保证把所有的数据取完遍历强调的是要把整个数据依次全部取出迭代器对迭代过程的封装,在不同的语言中有不同的表现形式,通常为对象迭代模式一种设计模式,用于统一迭代过程,并规范了迭代器规格:

2021-05-19 09:11:47 134

原创 redux-thunk、redux-promise、redux-saga(利用中间件进行副作用处理)

利用中间件进行副作用处理redux-thunk、redux-promiseredux-sagaredux-thunk、redux-promiseredux-thunkthunk允许action是一个带有副作用的函数,当action是一个函数被分发时,thunk会阻止action继续向后移交。thunk会向函数中传递三个参数:dispatch:来自于store.dispatchgetState:来自于store.getStateextra:来自于用户设置的额外参数 // disp

2021-05-16 22:11:44 324

原创 Redux的基本使用(api讲解)

React使用Redux管理数据React使用Redux管理数据ActionReducerStorecreateStoreRedux中间件(Middleware)React使用Redux管理数据安装redux依赖 npm install redux创建数据仓库通过createStore函数来创建一个仓库,该函数接收两个参数(reducer, state), reducer(state, action):改变仓库数据的函数,state: 仓库的初始数据import { createSt

2021-05-16 22:06:28 394

原创 webpack一篇就懂(持续更新中)

如何在浏览器端实现模块化文章目录如何在浏览器端实现模块化浏览器端的模块化根本原因解决办法常见的构建工具webpack的安装和使用webpack简介webpack的安装使用模块化兼容性同模块化标准不同模块化标准最佳实践前置知识:ES6、模块化、包管理器、git特点:合适的深度:webpack使用层面很简单,但原理层面非常复杂合适的广度:webpack生态圈极其繁荣,有海量的第三方库可以融入到webpack浏览器端的模块化问题:效率问题:精细的模块划分带来了更多的JS文件,更多的JS文

2021-03-27 22:12:35 135

原创 nvm(node版本管理工具)

nvm是用于管理多个node版本的工具在实际的开发中,可能会出现多个项目分别使用的是不同的node版本,在这种场景下,管理不同的node版本就显得尤为重要nvm就是用于切换版本的一个工具下载和安装最新版下载地址:https://github.com/coreybutler/nvm-windows/releases下载nvm-setup.zip后,直接安装使用nvmnvm提供了CLI工具,用于管理node版本在终端中输入nvm,以查看各种可用命令为了加快下载速度,建议设置淘宝镜像nod

2021-03-23 23:01:46 159

原创 yarn包管理工具

yarn 简介yarn 官网:https://www.yarnpkg.com/zh-Hans/yarn 是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具,它仍然使用 npm 的registry,不过提供了全新 CLI 来对包进行管理过去,yarn 的出现极大的抢夺了 npm 的市场,甚至有人戏言,npm 只剩下一个 registry 了。之所以会出现这种情况,是因为在过去,npm 存在下面的问题:依赖目录嵌套层次深:过去,npm 的依

2021-03-23 22:51:22 934

原创 npm包管理器

文章目录包的安装本地安装全局安装包配置配置文件保存依赖关系包的使用语义版本避免还原的差异[扩展]npm的差异版本处理npm 脚本 (npm scripts)运行环境配置在node中读取package.json其他npm命令 {ignore}安装查询更新卸载包npm 配置发布包准备工作发布开源协议包的安装安装(install)即下载包由于 npm 的官方 registry 服务器位于国外,可能受网速影响导致下载缓慢或失败。因此,安装好 npm 之后,需要重新设置 registry 的地址为国内地址。目

2021-03-23 22:48:32 811

原创 前端包管理器的概念和背景

文章目录包管理工具概述概念背景前端包管理器包管理工具概述概念模块(module)通常以单个文件形式存在的功能片段,入口文件通常称之为入口模块或主模块库(library,简称lib)以一个或多个模块组成的完整功能块,为开发中某一方面的问题提供完整的解决方案包(package)包含元数据的库,这些元数据包括:名称、描述、git主页、许可证协议、作者、依赖等等背景CommonJS 的出现,使 node 环境下的 JS 代码可以用模块更加细粒度的划分。一个类、一个函数、一个对象、一个配置等等均

2021-03-23 22:31:52 347 1

原创 JavaScript 模块化发展史

JavaScript 模块化发展史文章目录JavaScript 模块化发展史第一阶段第二阶段第三阶段第四阶段第一阶段在 JavaScript 语言刚刚诞生的时候,它仅仅用于实现页面中的一些小效果那个时候,一个页面所用到的 JS 可能只有区区几百行的代码在这种情况下,语言本身所存在的一些缺陷往往被大家有意的忽略,因为程序的规模实在太小,只要开发人员小心谨慎,往往不会造成什么问题在这个阶段,也不存在专业的前端工程师,由于前端要做的事情实在太少,因此这一部分工作往往由后端工程师顺带完成第一阶段发生的

2021-03-10 23:02:14 178

原创 ES6模块化

ES6模块化简介ECMA组织参考了众多社区模块化标准,终于在2015年,随着ES6发布了官方的模块化标准,后成为ES6模块化ES6模块化具有以下的特点使用依赖预声明的方式导入模块依赖延迟声明优点:某些时候可以提高效率缺点:无法在一开始确定模块依赖关系(比较模糊)依赖预声明优点:在一开始可以确定模块依赖关系缺点:某些时候效率较低灵活的多种导入导出方式规范的路径表示法:所有路径必须以./或…/开头基本导入导出模块的引入注意:这一部分非模块化标准目前,浏览器使用

2021-03-10 22:49:46 143

原创 AMD规范和CMD规范发展史

文章目录浏览器端模块化的难题AMDCMD浏览器端模块化的难题CommonJS的工作原理当使用require(模块路径)导入一个模块时,node会做以下两件事情(不考虑模块缓存):通过模块路径找到本机文件,并读取文件内容将文件中的代码放入到一个函数环境中执行,并将执行后module.exports的值作为require函数的返回结果正是这两个步骤,使得CommonJS在node端可以良好的被支持可以认为,CommonJS是同步的,必须要等到加载完文件并执行完代码后才能继续向后执行当浏览器遇

2021-03-09 22:58:17 164

原创 ES6类:构造函数的语法糖

文章目录类:构造函数的语法糖传统的构造函数的问题类的特点类的其他书写方式类的继承类:构造函数的语法糖传统的构造函数的问题属性和原型方法定义分离,降低了可读性原型成员可以被枚举默认情况下,构造函数仍然可以被当作普通函数使用构造函数被当作普通函数调用时new.target === undefined类的特点类声明不会被提升,与 let 和 const 一样,存在暂时性死区类中的所有代码均在严格模式下执行类的所有方法都是不可枚举的类的所有方法都无法被当作构造函数使用类的构造器必

2021-03-08 22:40:45 527

原创 CommonJS规范

CommonJS规范CommonJS模块的导出模块的导入CommonJS规范nodejs对CommonJS的实现CommonJS在nodejs中,由于有且仅有一个入口文件(启动文件),而开发一个应用肯定会涉及到多个文件配合,因此,nodejs对模块化的需求比浏览器端要大的多由于nodejs刚刚发布的时候,前端没有统一的、官方的模块化规范,因此,它选择使用社区提供的CommonJS作为模块化规范在学习CommonJS之前,首先认识两个重要的概念:模块的导出和模块的导入模块的导出要理解模块的导出,

2021-03-08 22:37:42 470

原创 node中解决sql注入问题

什么是sql注入?用户通过注入sql语句到最终查询中,导致了整个sql与预期行为不符,本来是查询行为,却做了其他事情,比如添加/更改了数据解决sql注入关键点:sql变量的内容不作为任何sql关键字使用:.execute()执行sql语句代码实现驱动程序使用的是mysql2npm install mysql2引入依赖创建连接池定义sql语句,变量处用** ? **代替.execute(sql语句,[对应变量])解决sql注入.query()会导致sql注入,它的变量处是字符串拼接

2020-06-02 18:07:18 815

原创 ES6_Promise的基本使用

Promise的基本使用const pro = new Promise((resolve, reject)=>{ // 未决阶段的处理 // 通过调用resolve函数将Promise推向已决阶段的resolved状态 // 通过调用reject函数将Promise推向已决阶段的rejected状态 // resolve和reject均可以传递最多一个参数,表示推向状态的数据})pro.then(data=>{ //这是thenable函数,如果

2020-05-28 20:51:48 126

原创 ES6箭头函数的基本使用

箭头函数回顾:this指向通过对象调用函数,this指向对象直接调用函数,this指向全局对象如果通过new调用函数,this指向新创建的对象如果通过apply、call、bind调用函数,this指向指定的数据如果是DOM事件函数,this指向事件源使用语法箭头函数是一个函数表达式,理论上,任何使用函数表达式的场景都可以使用箭头函数完整语法:(参数1, 参数2, ...)=>{ //函数体}如果参数只有一个,可以省略小括号参数 => {}如果箭头

2020-05-28 20:48:43 147

原创 var、let和const声明变量的问题

使用var声明变量允许重复的变量声明:导致数据被覆盖变量提升:怪异的数据访问、闭包问题全局变量挂载到全局对象:全局对象成员污染问题使用let声明变量ES6不仅引入let关键字用于解决变量声明的问题,同时引入了块级作用域的概念块级作用域:代码执行时遇到花括号,会创建一个块级作用域,花括号结束,销毁块级作用域声明变量的问题全局变量挂载到全局对象:全局对象成员污染问题let声明的变量不会挂载到全局对象允许重复的变量声明:导致数据被覆盖let声明的变量,不允许当前作用域

2020-05-28 20:45:50 575

原创 Axios常用配置

AxiosAxios是一个基于promise的HTTP库浏览器支持情况:Chrome、Firefox、Safari、Opera、Edge、IE8+引入<script src="https://unpkg.com/axios/dist/axios.min.js"></script>APIaxios(config)axios(url, [config])config 配置对象最常用的配置:axios({ method: 'get', // post、get、

2020-05-28 20:41:31 971

原创 VueRouter_路由导航守卫

VueRouter_导航守卫导航:路由正在发生变化。导航守卫主要用来通过跳转或取消的方式守卫导航。导航守卫被分成三种:全局的、单个路由独享的、组件内的。全局守卫是指路由实例上直接操作的钩子函数,触发路由就会触发这些钩子函数。全局前置守卫 beforeEach在路由跳转前触发,一般被用于登录验证。const router = new VueRouter({ ... })router.beforeEach((to, from, next) => { // ...})参数说明:

2020-05-28 20:31:19 314

原创 模拟v-model

模拟 v-model// 1. 通过绑定的数据,给元素设置value// 2. 当触发input事件时,去更改数据的值// 3. 更改数据后,同步input的value值Vue.directive('mymodel', { bind (el, binding, vnode) { const vm = vnode.context; const { value, expression } = binding; el.value = value; el.oninput

2020-05-28 20:28:37 304

原创 模拟v-show

模拟 v-show// 绑定的值为false,display为none,值为true,display为""Vue.directive('myshow', { bind (el, binding, vnode, oldVnode) { var display = binding.value ? '' : 'none'; el.style.display = display; }, update (el, binding, vnode, oldVnode) { var d

2020-05-28 20:27:39 129

原创 Vuex_严格模式

Vuex严格模式开启严格模式,仅需在创建 store 的时候传入 strict: true:const store = new Vuex.Store({ // ... strict: true})在严格模式下,无论何时发生了状态变更且不是由 mutation 函数引起的,将会抛出错误。这能保证所有的状态变更都能被调试工具跟踪到。开发环境与发布环境不要在发布环境下启用严格模式!严格模式会深度监测状态树来检测不合规的状态变更,要确保在发布环境下关闭严格模式,以避免性能损失。const s

2020-05-28 20:24:40 462

原创 Vuex_Module模块

Vuex_Module由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter。modules: { a, b}获取 state:this.$store.state.moduleName.xxx获取 getter:this.$store.getters.xxx提交

2020-05-28 20:22:58 143

原创 正确的CSS选择器优先级的计算方式

CSS选择器优先级的计算(计算选择器的特异性)1.css选择器的优先级简单的权重相加吗?显然不是2.怎样正确计算css选择器的优先级?w3c官网链接:第16条,计算选择器的特异性[https://www.w3.org/TR/selectors/#specificity](https://www.w3.org/TR/selectors/#specificity)1.css选择器的优先级简单的权重相...

2020-04-01 23:49:38 1092

原创 gulp4.x版本使用教程

gulp4.x版本使用教程1.快速入门(1)如果你以前将 gulp 安装到全局环境中了 ,需要将全局环境中的 gulp 删除再继续以下操作,执行以下代码即可删除(2)检查 node、npm 和 npx 是否正确安装(3)安装 gulp 命令行工具(全局安装)(4)在项目目录下创建 package.json 文件(5)安装 gulp,作为开发时依赖项(开发环境)(6)检查gulp版本(7)创建 gu...

2020-01-02 13:54:40 1551

原创 Java编程题:在控制台输入三角形的三条边,判断是否能构成三角形,如果能构成三角形,它属于何种三角形

Java编程题:在控制台输入三角形的三条边,判断是否能构成三角形,如果能构成三角形,它属于何种三角形百度网盘源码链接1.题目分析?2.接下来代码来喽?1.创建一个SanJiao类,用来写方法2.先写一个判断是否为三角形的方法,方法名为isSanJiao,该方法返回一个boolean类型的值3.再写一个==判断三角形类型==的方法,方法命名为==isType==,该方法返回三角形类型,在写该方法的过...

2019-12-31 11:06:06 11337 3

原创 简单实现柯里化,使用ES6中的剩余参数和展开运算符(展开语法)巧妙实现柯里化

使用ES6中的剩余参数和展开运算符巧妙实现柯里化1.什么是柯里化?柯里化(Currying):柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术2.什么是剩余参数和展开运算符(展开语法)?剩余参数:ES6的剩余参数专门用于收集末尾的所有参数,将其放置到一个形参数组中。展开运算符:用代码说明一下吧3.ES6实现柯里化1....

2019-12-14 23:14:58 380 1

原创 JavaScript字符串长度[String].length以及码元[Code Point]和码点[Code Unit]出现的问题的详解

JavaScript字符串长度[String].length以及码元[Code Point]和码点[Code Unit]的详解码元,码点出现的问题码元(Code Point):我们将一个==16位==的二进制编码叫做一个码元码点(Code Unit):我们将某个==文字对应的二进制数字==叫做码点由于码元,码点产生的问题---[string].length运行代码打印出: ==1 true...

2019-12-13 22:58:54 810

原创 Google Chrome浏览器安装.crx格式的插件时提示程序包无效:“CRX_HEADER_INVALID”的解决方法

Google Chrome浏览器安装.crx格式的插件时提示程序包无效:“CRX_HEADER_INVALID”的解决方法(一)本篇文章所用的测试工具及版本介绍(二)crx程序包无效解决方法1、将插件安装包==后缀名字==(格式).crx==改为 .rar== 或者.zip,修改完解压。2.改完后缀名后==解压缩==。(1)**下面是解压完成后的文件夹**(2)**下面是文件夹里的文件**3.进入...

2019-12-11 13:48:06 865

原创 CSS清除浮动流(利用伪元素清除浮动)

CSS清除浮动流(使父级元素包住浮动子集)利用尾元素清除浮动div::after{content = " ";clear: both; //清除尾元素两边浮动流display : block; //尾元素变为块元素}**注意!**浮动元素================>浮动流**1,所有产生浮动流的元素,块级元素看...

2019-06-14 16:52:09 754

原创 JavaScript数组去重(利用对象属性特点)

JavaScript数组去重利用对象属性特点进行数组去重1,一个对象,属性名不可能重复2,把数组元素当作对象属性名

2019-06-14 16:09:01 579 2

ES6模块化DEMO.zip

ES6模块化示例DEMO

2021-03-10

CMD_DEMO.zip

CMD规范示例DEMO

2021-03-09

AMD_DEMO.zip

AMD规范示例DEMO

2021-03-09

ES6柯里化(展开运算符).js

使用ES6中的剩余参数和展开运算符巧妙实现柯里化 柯里化(Currying):柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术 通俗的讲:柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术 剩余参数:ES6的剩余参数专门用于收集末尾的所有参数,将其放置到一个形参数组中。

2020-01-02

Java判断三角形类型的源码.zip

Java判断三角形类型的源码,编程题:在控制台输入三角形的三条边,判断是否能构成三角形,如果能构成三角形,它属于何种三角形 提示:任意两边之和大于第三条边是三角形 三条边相等是等边三角形; 创建一个类:有一个方法判断是否三角形,有一个方法判断是何种三角形

2019-12-31

空空如也

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

TA关注的人

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