- 博客(14)
- 收藏
- 关注
原创 Reduce实践与实现
作用 按顺序返回数组中的上一个元素与当前处理元素,用以处理一些复杂的逻辑 参数 callback: prev 上一个元素, 如果传入初始值,则为初始值, 默认为第一个元素 curr 当前处理元素, 如果有初始值,则为第一个元素, 默认为第二个元素 index 下标, 如果有初始值, 则为0, 默认为1 arr 当前处理的数组 initValue: 初始值 使用 [1,2,3,4].reduce((prev, current, index)=>{ return current },
2021-08-16 20:04:18
326
原创 变量提升与预解析
js预析 三个要素: var 方法参数 function 预解析过程就是变量提升的过程,每当出现这三要素之一,首先形成预先解析空间,预解析完成以后,再逐行执行。 如果在本作用域中没有找到值得定义,那么将会向上查找,形成作用域链 什么是作用域? 个人理解:一段解析空间 配合题目加深理解: console.log(a) var a = 1; console.log(a) function a(){ console.log(1) } var a = 2; console.log(a) function
2020-12-23 11:08:55
409
原创 Less 进阶使用及常见问题
大纲 函数 判断语句 运算符 循环语句 数组与数组函数 Mixin使用自定义函数 常见问题 函数 .testfn(); // 函数后面要加分号 .testfn(){ // 返回变量 或 类名 @color: red .background-color{ background-color: white } } .testfn1(); .testfn1(@var1:1){ // 参数默认值 @color: red .background-co
2020-12-22 16:35:33
887
原创 Ts+Cra项目 文件路径别名不生效问题
在配置完成启动项目时发现,tsconfig.json中的paths配置项被删除。 导致编译时一直找不到文件 经过一番查找,后来得知原因可能是项目启动时tsconfig.json被重写。 避免重写的办法: 新建一个ts.paths.json文件,内容如下: { "compilerOptions":{ "paths": { "@/*": ["./src/*"] } } } 然后再tsconfig.json中使用extends方法引入: {
2020-12-22 16:31:33
1289
原创 代码提交时自动格式化配置
前言 多人合作的问题就在于大家代码风格都不一样,有了代码提交时自动格式化,可以避免再开发过程中去考虑代码格式的问题(经常气的想关掉eslint),同时保证了一定的规范性 husky 一个git钩子工具,这里主要用pre-commit钩子。通俗点讲就是husky可以在你commit之前帮你做一些事情。 prettier 一个很流行的代码格式化工具,你很容易在编辑器找到实现它的各种插件,像vscode,atom,webstom都可以找到。这里用它在代码提交前做代码格式化。 eslint 代码检查工具。eslin
2020-12-22 16:30:02
1551
原创 Yarn记录
常用命令: 查看全局安装路径 yarn global dir 设置全局安装路径 yarn config set global-folder '路径' 设置全局缓存路径 yarn config cache-folder '路径' 全局安装 yarn global add [packname] 全局卸载 yarn global remove [packname] 安装当前所有依赖 yarn install 安装 yarn add [packname] yarn add [packname]@[v]
2020-12-22 16:25:28
210
原创 gulp使用指北
因为公司业务需求,需要用到gulp。 但是第一次使用,于是有了这篇使用指南。 gulp的概念与作用 概念:基于流(stream)的自动化构建工具 作用: 压缩合并js、css文件 图片优化 添加文件指纹 项目按需打包 项目实时刷新 预编译 服务代理 eslint… Global 字符片段与分隔符 gulp 将 / (一个斜杠)作为分隔符 简单说就是以 / (一个斜杠)为分割单位进行分割 view/script 这里view/script 将被视为两个字符片段 特殊字符: *(一个星号) 可以匹配一个字
2020-08-31 23:16:21
292
原创 instanceof与typeof详解
instanceof与typeof的区别 typeof 判断 值得类型 instanceof 判断 是否是某一对象的实例 console.log(typeof 11) // number console.log( {} instanceof Object ) // true typeof有哪些值 string number object undefined symbol function boolean // string console.log( typeof '一一' === string )
2020-08-12 00:41:22
395
1
原创 Http缓存小结
http缓存: 强缓存200 协议缓存304 强缓存 浏览器判断本地缓存没有过期,就直接使用,不需要再发起http请求 1.Cache-Control 参数: private: 可以进行缓存 pubilc: 客户端与服务端都可以进行缓存 ( 对于前端来说 与 private 是一样的 max-age: 最大缓存时间 no-cache: 需要进行协议缓存 no-store: 不进行缓存 2.Expires http1.0时代的api 如果设置了cache-control: max-age 则不会生效
2020-08-11 12:48:03
235
原创 JS中的继承—继承的几种方式
个人理解: 所有实现继承的实现主要是根据 原型链,构造属性来完成。 根据设计规范所衍生出了不同的方法 在Objec.create方法出现之前,主要依靠三种方法: 原型链继承 构造函数继承 组合继承(原型继承 + 构造继承) 在Objec.create方法出现之后,衍生出了另外三种: 原型式继承 寄生式继承 寄生组合继承 ES6规范出台后: class 类 Object.create() 接收两个参数: proto, 创建对象的原型对象 , 默认为 Object.prototype proper
2020-08-09 14:47:33
408
原创 CMD UMD AMD CommonJS ES6的特点及差异
原因: 为了解决 文件模块化 以及 加载问题 CommonJS 同步加载依赖(速度慢) 运行后缓存结果 应用于服务端(因为加载的模块多存储在本地,加载速度较快,所以不考虑异步) 输出运行得到的值的拷贝 AMD: 异步加载依赖(速度快) 预加载所有模块(浪费资源) 使用时执行(性能较高) 更适用于浏览器端(避免加载模块时导致的页面假死) CMD 同步加载依赖(速度慢) 懒加载、使用时加载依赖(节约资源) 使用时定义依赖(性能较差) 适用于服务端 ES6 异步加载依赖 编译时执行 输出值的引用
2020-08-07 00:53:03
519
原创 JS中的继承—构造函数与实例
实例 概念 实例可以当作一个对象的描述 const person = new Object() // person 是 Object的实例 实例与对象的关系 实例都是对象,而对象不都是实例 const chinese = { area: '亚洲', color: '黄', // ... } console.log( chinese.__proto__.constructor === Object ) // true // chinese 是 Object 的实例 // Ob
2020-08-07 00:37:14
423
原创 JS中的继承—原型篇
原型对象 一个对象的基本描述, 它本身是一个普通对象 当我们在创建一个对象时,这个对象往往会附加一些基本属性,这些基本属性则被称之为原型对象 const person = {} console.log( person.__proto__ ) // 每一个普通对象都有 __proto__ 属性 function person (){} console.log( person.prototype ) // 每个函数对象都有prototype属性 // prototype 和 __proto__ 包含了对象
2020-08-06 23:48:29
231
原创 react入门指南(全过程)
react项目的创建流程 基于create-react-app的完整项目所需要的依赖: 安装 create-react-app 安装 react-router-dom 安装 react(可选) 安装 redux-redux(可选) 项目流程 创建一个挂载实例的根文件 创建路由 创建状态store(可选) 这样就可以简单的在本地跑起项目 关于create-react-app手脚架创建的...
2019-03-19 16:28:45
478
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅