javascript
文章平均质量分 71
中南滴水哥
啥也不会,废物一个!!
展开
-
前端websocket实现简易聊天室
分为客户端和服务端,客户端就是一个简单的html页面,服务端使用node进行编写。具体代码如下index.html<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title>websoket</title></head><body> <h1>chat room</h1> <in.原创 2021-11-17 19:47:43 · 2774 阅读 · 0 评论 -
前端如何实现token的无感刷新
前端如何实现token的无感刷新方法一方法二方法三问题一:如何防止多次刷新token问题二:同时发起两个或者两个以上的请求时,怎么刷新token通常,对于一些需要记录用户行为的系统,在进行网络请求的时候都会要求传递一下登录的token。不过,为了接口数据的安全,服务器的token一般不会设置太长,根据需要一般是1-7天的样子,token过期后就需要重新登录。不过,频繁的登录会造成体验不好的问题,因此,需要体验好的话,就需要定时去刷新token,并替换之前的token。要做到token的无感刷新,主要有3原创 2021-11-05 17:33:21 · 461 阅读 · 0 评论 -
JS中Map和普通对象
Map对象Map 对象保存键值对。任何值(对象,数组,字符串,数值,布尔,null,undefined) 都可以作为一个键或一个值。一个Map对象在迭代时会根据对象中元素的插入顺序来进行 — 一个 for...of 循环在每次迭代后会返回一个形式为[key,value]的数组。Map.prototype.size – 返回Map对象的键/值对的数量。Map.prototype.clear() – 移除Map对象的所有键/值对 。Map.prototype.delete(key) –原创 2021-07-25 21:05:51 · 847 阅读 · 0 评论 -
JS中Map和Set数据结构
JS中Map和Set数据结构Set1. 介绍ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set本身是一个构造函数,用来生成 Set 数据结构。浏览器打印Set看一看,发现确实是一个构造函数,我们可以调用这个构造函数生成Set实例,同时,这个构造函数的prototype上有很多属性和方法,我们的实例可以通过原型来访问这些属性和方法。2. Set 实例的属性和方法Set 结构的实例有以下属性。Set.prototype.constructor:构造函原创 2021-07-16 10:05:42 · 422 阅读 · 0 评论 -
call, apply, bind 讲解 (含自己实现)
call, apply, bind 讲解 (含自己实现)this指向基本知识例 1var name = '伞兵一号', age = 18;var obj = { name: '伞兵二号', objAge: this.age, myFun: function() { console.log( this.name + '年龄' + this.age) }}obj.objAge; // 19obj.myFun() // 伞兵二号年龄 undefined (obj中原创 2021-07-15 21:09:30 · 124 阅读 · 0 评论 -
函数柯里化
函数柯里化函数柯里化什么是函数柯里化(curry)函数柯里化的作用参数复用提前返回延迟执行函数柯里化什么是函数柯里化(curry)函数柯里化(curry)是函数式编程里面的概念。curry的概念很简单:只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。简单点来说就是:每次调用函数时,它只接受一部分参数,并返回一个函数,直到传递所有参数为止。维基百科中定义的总结:输入是一个函数,并且这个函数拥有n个参数输出也是一个函数,并且可以使用fn()()()这种方式调用参数被柯里化过程原创 2021-07-15 20:01:42 · 97 阅读 · 0 评论 -
完全掌握AJAX(含封装自己的AJAX请求)
完全掌握AJAX并封装自己的AJAX请求AJax1. 概述:Ajax产生的原因什么是AjaxAjax工作原理2. 发送一次Ajax请求1. 创建XMLHttpRequest 对象2. 发送请求3. 响应请求4. readyState,onreadystatechange 事件,status状态码5. 完整实例6.自己封装一个ajax请求AJax1. 概述:Ajax产生的原因如果仔细观察一个Form的提交,你就会发现,一旦用户点击“Submit”按钮,表单开始提交,浏览器就会刷新页面,然后在新页面里告原创 2021-06-28 21:58:53 · 663 阅读 · 1 评论 -
JavaScript中对象深克隆方法
JavaScript中对象/数组深浅克隆JavaScript中对象深克隆方法深浅克隆产生的原因循环递归法(面试用的最多)JSON序列化使用lodash提供的深克隆方法ES6扩展运算符(...)对象使用`assign`方法数组原生方法JavaScript中对象深克隆方法深浅克隆产生的原因我们知道基本数据类型和引用数据类型分别存储在栈和堆中,所以对于赋值会有不一样的情况。对于基本数据类型,赋值话会直接产生一份新的数据,而对于引用数据类型赋值的话传递的只是对象的引用(指针),所以两个会互相影响,看下面这个例原创 2021-06-27 16:21:25 · 418 阅读 · 0 评论 -
JavaScript中栈和堆,值传递和引用传递
JavaScript中栈和堆,值传递和引用传递基本数据类型和引用数据类型栈和堆1. const定义一个变量是不是不可变的2. 数据赋值3. 值传递和引用传递4. 栈内存和堆内存的优缺点基本数据类型和引用数据类型在讲什么是栈和堆之前我们首先要知道为什么会有这种东西,我们都知道JavaScript中的数据类型有两种,基本数据类型和引用数据类型。这两种数据有什么区别呢,最大的区别就是基本数据类型是存在栈中,引用类型存在堆中。下面有关于栈和堆的详细讲解栈和堆在js引擎中对变量的存储主要有两种位置,堆内存和栈原创 2021-06-25 21:13:53 · 279 阅读 · 1 评论 -
promise妙用(等同步函数里的异步执行完再继续执行)
考虑这样一个场景:function func1(){ let temp = new Promise((res, rej) => { setTimeout( () => { console.log('第三'); },2000) })}function func2() { console.log("第二") func1();}function func3(){ console.log('第一')原创 2021-06-17 15:41:10 · 5761 阅读 · 2 评论 -
ES6中的类
Javascript中的类this指向问题MDN对于与Class的就讲解转载 2021-06-11 15:05:36 · 58 阅读 · 0 评论