自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 v8,v8垃圾回收

v8是一款主流的 javaScript 执行引擎,v8采用即时编译,v8内存设限v8垃圾回收v8垃圾回收是采用分代回收思想内存分为新生代,老生代v8内存分为新生代和老生代二个空间,新生代再分二个空间:使用空间(From)和空闲空间(To)新生代对象回收(空间换时间)回收过程采用复制算法+标记整理使用空间(From)和空闲空间(To)活动对象存储于From 空间标记整理后将活动对象拷贝至To老生代对象回收主要采用标记清除,标记整理,增量标记算法...

2021-04-29 11:15:35 57

原创 内存管理,GC,常见GC算法,引用计数,标记清除,标记整理

内存管理:内存:由可读写单元组成,表示一片可操作空间管理:人为的去操作一片空间的申请,使用和释放内存管理:开发者主动申请空间,使用空间,释放空间管理流程 申请-->使用 --> 释放//简单的案例, 申请/使用/释放//申请let obj={}//使用obj.name="yuqi"// 释放obj=nullGC定义和作用GC就是垃圾回收机制GC可以找到内存中的垃圾,并释放和回收空间GC中垃圾:不再次使用GC算法:算法就是工作时查找和回收所遵循的..

2021-04-29 10:49:02 335

原创 typeScript 原始类型,各种类型,接口,类,抽象类,泛型

typeScript 原始类型1. string 字符串2.number 数字3.boolean 布尔值4.void 空值 一般 赋值 undefined5. null空值6.undefined7.symbol作用域问题function(){ const a:number =1 }export {}// Object类型 是指非原始类型,如 数组,对象,函数const foo :object = function(){}const obj :{foo:nu...

2021-04-29 09:23:14 169 2

原创 TypeScript快速上手, 强类型与弱类型

typesrcipt 语言: 是javascript 的超集或者扩展1.强类型与弱类型(类型安全)2.静态类型与 动态类型(类型检查)强类型:强类型不允许随意的隐式类型转换,弱类型:允许随意的隐式类型转换静态类型:声明之后不能被修改动态类型:运行阶段才能够明确变量类型,而是变量的类型随时可以改变javascript 类型系统特征: 弱类型与动态类型初识 typeScript ,如何安装1.初始化项目 cnpm init -y2.添加 typeScript...

2021-04-28 15:34:08 413

原创 es2015,类,静态方法,继承, Set,Map,Symbol,iterator迭代器

es2015 中的类class Pro { constructor(name){ this.name=name } say(){ console.log(`hi,${this.name}`); } // 静态方法 static create(name){ return new Pro(name) }}// const p = new Pro("zom")const p = Pro.create("zom")p.say() //hi,z.

2021-04-27 17:06:22 102

原创 ES2015 字符扩展方法,展开数组... , 普通函数对比箭头函数,Object.assign

startsWith 是查询字符串开始endsWith 是查询字符串结束includes 是查询字符串是否包含// 字符串扩展 startsWith / endsWith /includesconst message = "hi string message ."console.log(message.startsWith('hi')); // trueconsole.log(message.endsWith('.')); // trueconsole.log(mes.

2021-04-27 15:18:55 92

原创 var let const 的区别,解构,

在javaScript 中 分两种作用域 : 全局作用域和局部作用域在ES2015 以前 都是 var 声明的,var 会声明提升在ES2015 发版之后 新增的 let const 这两种let 是块级作用域, 不会提升,必须先声明const 是 常量,赋值之后不能修改地址解构//解构const obj={ name:"张三", age:18}let name="李四"let {name:objName,age} = objconsole.log(nam...

2021-04-27 11:23:46 51

原创 promise 模仿 then,catch,finally,all,resolve 代码

模仿promise 代码Mypromise 类// 三种状态const WAITFOR = "waitFor" //等待const SUCCESS = "success" //成功const FAIL = "fail" //拒绝class MyPromise { constructor(executor) { try { executor(this.success, this.fail) } catch

2021-04-20 18:57:27 191

原创 Async/ Await

ES2017 加入 async 函数,使异步操作更加简洁方便使用很方便, 就在函数前面加 async 关键字 ,来表示它是异步, 一般async 和 await 配合使用 ,await 是在async 内部使用, await 在定义函数前面async 表示异步await 等待异步处理的结果//简单实用asyncfunctionfoo(url){letvalue=awaitajax(url)console.log(value);}con...

2021-04-20 14:48:08 57

原创 promise

promise:一种更优的异步编程统一方案;promise 是一个普通对象,用来表示一个异步任务过后是成功还是失败promise 代码// promise 基本示例const promise = new Promise(function(res,err){ res(1000) //成功 // err(new Error("err")) //失败})// promise.then(value=>{// // 成功状态// cons.

2021-04-20 12:15:45 64

原创 线程模式,同步模式和异步模式,回调函数

javaScript : 采用单线程模式,将执行模式分成2种: 同步模式和异步模式同步模式: 排队去执行,等这个任务结束才会去执行下一个任务异步模式:多个任务同时执行,不会去等待这个任务结束才开始下一个任务单线程的javaScript 语言就无法同时处理大量耗时任务,但是异步可以, 缺点是代码的执行顺序混乱,回调函数 所有异步编程方案的根基回调函数定义:由调用者定义,交给执行者执行的函数,...

2021-04-20 11:16:44 92

原创 函子(Functor)

函子: 是一个特殊的容器,通过一个普通的对象来实现,该对象具有map方法,map 方法可以运行一个函数对值进行处理// Functor// 定一个类class Container{ constructor(value){ this._value= value } // 向外提供方法 map(fn){ return new Container(fn(this._value)) }}let r= new Containe.

2021-04-20 10:52:51 178

原创 Point Free 集合

1.point Free 定义:3点1.1 不需要指明处理数据1.2 只需要合成运算过程1.3 需要定义一些辅助的基本运算函数例如:// point pree// HELLO WORLD => hello_worldconst fp = require("lodash/fp")const f = fp.flowRight(fp.replace(/\s+/g,"_"), fp.toLower)console.log(f('HELLO WORLD'));//..

2021-04-19 18:36:51 233

原创 lodash 中fp的模块, map问题

1.lodash 中fp的模块提供了对函数式一系列实用的方法,lodash/fp( 函数优先,数据之后)lodash( 数据优先,函数之后)// lodash 中 fp 模块// 1.导入const fp = require("lodash/fp")// 2. 使用方法 flowRight / join /map /toLower /splitconst f = fp.flowRight(fp.join("-"),fp.map(fp.toLower),fp.split(" ")...

2021-04-19 17:50:07 342

原创 函数组合,原理模拟, lodash 中 flowRight 属性,

函数组合:如果一个函数要经过多个函数处理才能得到最终的值,这个时候可以把中间过程的函数合并成一个函数函数组合默认是从右到左执行const _ = require("lodash")const reverse = arr => arr.reverse();const firstt = arr => arr[0];const toUpper = s => s.toUpperCase();const f = _.flowRight(toUpper,firstt,rever

2021-04-19 16:33:49 244

原创 函数柯里化定义,使用

柯里化定义:当一个函数有多个参数的时候先传递一部分参数调用它(这部分参数以后不会改变),然后返回一个新的函数接收剩余的参数,返回结果// 例如: 不满18岁的,// function getAge(age){// return age>=18// }// 有些地方规定年龄不一致,改造一下// function getAge(min,age){// return age>= min// }// console.log(getAge(18,20));// co

2021-04-19 15:26:19 100

原创 使用纯函数的好处,模拟 memoize 函数

直接看代码// 纯函数的好处const lodash = require("lodash")function getArea(r){ console.log(r); return Math.PI*r*r}let area = lodash.memoize(getArea);console.log(area(4));console.log(area(4));console.log(area(4));打印结果:通过案例看出来:lodash.memoize ..

2021-04-19 14:15:10 131

原创 lodash 安装及使用

lodash:中文版网站:https://www.lodashjs.com/借用 中文版说明:Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。使用及安装:1. 在项目 终端 先初始化 npm init -y2.安装 lodash : npm install lodash3.下面看代码// 1.npm init -y// 2.npm install lodash// 3.引入 lodashconst lodash = require("lodash...

2021-04-19 11:40:51 7595 1

原创 纯函数理解和定义,以及副作用

1.纯函数: 输入相同,输出相同,(如果不是就是副作用,后面会讲到)2.有slice/splice 进行测试let array = [1,2,3,4]// slice / splice// 纯函数console.log(array.slice(0,3)); // [1,2,3]console.log(array.slice(0,3)); // [1,2,3]console.log(array.slice(0,3)); // [1,2,3]console.lo...

2021-04-19 10:18:02 217

原创 闭包的定义以及使用,调试代码

什么是闭包?一个可以访问到别的函数作用域中变量的函数优点:闭包可以让一个局部变量不会被回收,方便长期使用缺点:闭包使用过多会造成内存泄漏代码如下: function show() { let sum = 100; return function () { sum++; console.log(sum); } }

2021-04-16 00:20:49 149

原创 高阶函数 map filter foreach every some once

高阶函数:使代码更加简洁,使代码很灵活,我们调用函数时,只要关注实现的目标高阶函数:有哪些 forEach filter map every some我们一个一个来说1.foreach 它是一个循环数组;let arr = [1, 2, 3, 4]arr.forEach(item => { console.log(item);})// 这打印结果 1 2 3 4...

2021-04-15 22:33:23 178

原创 函数定义,函数式编程

1.什么是函数:一般来说,一个函数是可以通过外部代码调用的一个“子程序”(或在递归的情况下由内部函数调用),注意引用mdn2.为什么要学函数式编程,2.1:函数式编程是随着React的流行受到越来越多的关注2.2:Vue3也开始使用函数式编程简单来说: 函数式编程使用越来越广泛,使用者来越来越多3.函数式编程: 把现实世界中事物和事物之间的联系抽象到程序世界,对运算过程进行抽象从思维来说: 面向对象编程是对事物的抽象 而函数式编程是对象运算过程的抽象...

2021-04-15 22:13:48 130 1

空空如也

空空如也

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

TA关注的人

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