自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 用forEach实现map, filter, concatAll

forEachforEach可以对数组中的每一项循环遍历, 但是并不会改变原有数组。map 如何返回一个新的数组map的原型函数所做的事,遍历原有数组所有的元素将每个元素的预期值塞到新的数组中去Array.prototype.map = function(callback){ var result = []; this.forEach(element, index){ result.push(callback(element, index)); } return re

2020-11-28 16:24:31 270 1

原创 JavaScript精选文章

JavaScript隐式转换与比较https://chinese.freecodecamp.org/news/javascript-implicit-type-conversion/

2021-05-17 13:49:25 124

原创 前端性能优化之防抖与节流

防抖防抖(debounce):当持续触发事件时,一定时间内没有再触发事件,事件处理函数才会执行一次;如果设定时间到来之前,又一次触发了事件,就重新开始延时。关键在于,在一个事件发生特定时间之后,才会执行特定事件。let debounce = (fn, delay) => { let timer = null; return function(...args){ if(timer){ clearTimeout(timer); } /

2021-04-22 11:17:40 163

计算机网络--网络协议

OSI七层模型OSI开放式系统分层模型(Open System Interconnection Model), 是网络标准的概念模型。应用层提供高级API,定义了网络主机的方法与接口,是直接对用户的。例如HTTP,FTP,SMTP。表示层/展示层/语法层也叫语法层,将应用层的数据转换传输格式,保留语义。(如:序列化,加密解密,字符串解码编码等)确保数据发送取出后能被接收者理解。比如中国用的国标码(GBK)发送到国际要用国际(Unicode)。会话层客户端与服务器联系在一起,就会形成一个会话。

2021-04-05 16:53:27 115

原创 JavaScript之函数式编程

前端为什么要关注内存JS数据类型与JS内存机制垃圾回收V8内存管理机制前端为什么关注内存防止页面内存过大,引起客户端卡顿甚至无响应。Node.js使用V8引擎,需要后端持久性支持,后端更容易造成内存溢出。JS数据类型与JS内存机制原始数据类型: String, Boolean, Number, Null, Undefined, Symbol引用数据类型: Object内存空间:Stack, Heap原始数据类型都存在栈内存中。 引用数据类型存储在堆内存中。引用数据类型我们.

2021-04-03 22:26:56 86

原创 Angular 动态组件加载器

如果是单页面应用程序, 页面的模板不可能是一成不变的, 因为它在运行时会动态地加载一些新的组件。 此时,就需要动态组件加载器。如何生成动态组件? 有以下几步:1. 准备好要显示的组件: AComponent, BComponent,… XComponent比如创建一个基础组件AComponent。import { Component, Input } from '@angular/core';@Component({ template: ` <div class="xx-con

2020-12-23 15:24:35 585 1

原创 VSCode 使用 minify 手动压缩JS, CSS, HTML

在项目中, build出来的js实在是太大了, 而我不能使用公司以外的网站或者是插件来压缩,此时就可以用平时的开发工具 VSCode 压缩。1. 下载Minify插件搜索minify, 可以得到以下结果,点击Install即可下载, 我下载了前两个插件。2. 手动选择需要压缩的文件根据Minify官网指示, 压缩命令如下:Ctrl + Shift + P :选择第一个然后就会出现一个框, 可以输入自己要压缩的文件, 也可以上下选择要压缩的文件。...

2020-12-22 20:16:57 9054 4

原创 Rxjs:用creation operator创建observable

根据官网创建操作符,本篇文章介绍其中一些常用操作符。create想到创建observable, 最基本的就是create。下面是一个基本的例子:var source = Rx.Observable.create(function(observer){ observer.next('hello'); observer.next('i want to study rxjs'); observer.complete();});source.sub...

2020-11-29 21:43:36 107

原创 建立Observable

建立Observable : create建立 Observable 的方法有非常多种,其中 create 是最基本的方法。var observable = Rx.Observable.create( function(observer){ observer.next('hello'); observer.next('world'); });//订阅observable.subscribe( function(value){ console.l

2020-11-29 15:55:35 257

原创 Rxjs之Observable

讲解什么是Observable之前, 先谈谈两种设计模式。首先了解什么是观察者模式, 以及迭代模式。观察者模式观察者模式, 就是当我们对某件事件注册监听,并在事件发生时,自动执行我们注册的监听者。我自己的理解就好比我们点击关注某个博主的csdn, 当她有新的博文发出时, 我们的平台就能自动接收最新的推送。下面展示两种ES5和ES6的写法, 来更深入理解。ES5:function Producer() { if(!(this instanceof Producer)){ throw n

2020-11-29 15:06:01 1494 2

原创 Rxjs 01 02学习笔记

Rxjs基本介绍RxJS 是一套藉由 Observable sequences 来组合非同步行为和事件基础程序的 Library!可以把 RxJS 想成处理 非同步行为 的 Lodash非同步常见的问题竞态条件 (Race Condition)内存泄露(Memory Leak)复杂的状态 (Complex State)例外处理 (Exception Handling)Fuctional Programmingfunctional programming 是一种编程范式。基本条件需要

2020-11-28 15:40:02 92

空空如也

空空如也

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

TA关注的人

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