自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 前端365(2021-08-28)

每天分享看到的知识点!(1)Web Socket介绍要创建一个新的 Web Socket, 就要实例化一个WebSocket对象并传入提供连接的URL:let socket = new WebSocket("ws://www.example.com/server.php")WebSocket对象没有像xhr一样的readystatechange事件,可以监听状态的变化。而是有与不同状态对应的其他事件。readyState值从0开始WebSocket.OPENING (0): 连接正在建立W

2021-08-28 21:33:39 130

原创 HTML点击对象key值获取路径

问题:公司遇到了这样一个业务,需要将JSON对象输出到html页面中,点击属性值,并展示这个对象的可访问路径网上没有找到相关的解决方案,索性自己写了一个<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="v

2021-07-06 13:43:32 487

原创 webpack文件打包原理

webpack文件打包原理1. 打包核心代码add.js exports.default = function (a,b) {return a + b}index.js var add = require('add.js').default console.log(add(1,2))代码打包 //list为一个对象,存放文件名,和文件代码 (function (list) { function require(file) {

2021-07-06 12:30:35 160

原创 EventEmitter简单实现

class EventEmitter { constructor () { // 选择map做储存结构,比一般对象更简洁 this._events = this._events || new Map(); this._maxListeners = this._maxListeners || 10; } // 触发事件 ...

2020-06-13 00:12:49 272

原创 javaScript 常见的设计模式(一)

express常见的几个操作,有需要的可以看下https://github.com/yonghui-wang/qianduan/tree/master/expressconst express = require('express');const cookieSession = require('cookie-session');let server = express();server.listen(8080);server.use(cookieSession({ keys: [

2020-06-12 17:32:12 165

原创 new,instanceof原理剖析

new 功能分析看看new 运算符都干了什么1. 创建一个空对象obj2. 将空对象原型链上的__proto__ 指向 构造函数的原型ptototype3. 绑定this值,将构造函数this指向空对象,并传入参数4. 如果构造函数Fn返回值是一个对象或函数,则返回改对象,否则返回obj function Parent (name,age) { this.name = name; this.age = age; }

2020-06-09 12:53:51 233

原创 MVVM原理初探索

html代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> <di

2020-06-08 20:46:59 141

原创 JS函数柯里化(curry)

JS函数柯里化(curry)函数柯里化,就是把一个多参数的函数,转化为单参数函数。也就是说: 参数项可以分多次传递,直到参数满足条件,函数执行 function add(x, y) { return x + y; } add(1, 2) // 3 // 柯里化 function addX(y) { return function (x) { ret

2020-06-04 20:05:11 369

原创 canvas实现flybird小游戏

(function () { let Pipe = function () { this.h1 = Math.round(Math.random() * 220 + 100); // h1为上边管道,随机高度220-320之间 this.space = 140; // 上下方管道 空隙为140 // 下方管道长度 = 总高度 - 土地高 -...

2020-01-08 17:37:54 1063

原创 js原生写个简单的轮播图

效果图css * { margin: 0; padding: 0; } .container { position: relative; width: 640px; height: 480px; margin: 50px auto; overflow: h...

2019-07-18 17:26:31 130

原创 js原生写一个瀑布流

瀑布流特点:1. 瀑布流元素宽度相同,高度不同2. 滚动页面时,在页面高度最小处插入元素效果图:话不多说,直接上代码css: * { margin: 0; padding: 0; } .box { float: left; padding: 0 5px...

2019-07-17 16:16:26 139

原创 说下js中常见的几种循环

forEach: 类似for循环,无返回值 var arr = [1,2,3,4,5]; arr.forEach((item,index,array) => { console.log(index + '--' + item); // 0--1 1--2 2--3 ... console...

2019-07-16 12:39:48 473

原创 js展平一个数组

for循环递归数组的concat方法会返回一个新数组 let arr1 = [1,[2,3,[4]]]; function flatten(arr) { let result = []; for (var i = 0; i < arr.length; i++) { if (Array.isArray(arr[i])...

2019-07-14 14:08:04 756

原创 call,apply原理分析

call 与 apply 的相同点都是为了改变函数调用时this指向,函数可立即执行call 与 apply 的不同点call使用多个参数进行传参,apply只有两个参数,后面参数是一个数组一、call 使用说明let obj = { gender: '男'}function show(name,age) { console.log(`我是${name} 今年${ag...

2019-07-14 00:31:37 153

原创 说下防抖和节流

1. 防抖触发高频率事件在n秒后函数会触发一次,n秒内触发高频率事件,重新计算时间举个例子:就像进电梯,电梯开启后,有一群人要进电梯,假如电梯3s内不进人就会关闭,现在不断有人进入。进电梯就是高频率事件,前一个人进去后,后面的人重新开始计时,,事件不断触发。当最后一个人进入后,3s后电梯开始关闭。 var inp = document.getElementById('input'); ...

2019-07-12 11:17:54 144

原创 说说构造函数中几种继承

1.call的借用继承 function parent1() { this.name = "parent1" } function child1() { parent1.call(this) this.type = 'child1' } parent1...

2019-07-11 12:57:02 184

空空如也

空空如也

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

TA关注的人

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