![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
文章平均质量分 90
慕斯策划一场流浪
生活是这样一件甘苦自知,敝帚自珍的事情。你若愿苦其自身,才能掌声雷动。
展开
-
用JavaScript实现一个简易的区块链
安装依赖模块npminstallcrypto-jsconst sha256 = require('crypto-js/sha256')class Block { constructor (data, prevHash) { this.data = data this.prevHash = prevHash this.hash...原创 2020-03-21 15:49:45 · 686 阅读 · 0 评论 -
封装axios定义ajax请求函数统一处理请求异常
import axios from 'axios';import message from 'antd';export default function ajax(url, data={}, type='GET') { return new Promise((resolve, reject) => { let promise if (type=...原创 2020-03-14 19:40:19 · 162 阅读 · 0 评论 -
前端性能优化
从输入URL到页面加载完成,发生了什么?用户输入baidu.com 浏览器通过DNS,把ur解析为IP IP地址建立TCP链接发送HTTP请求 服务器接收请求,查库,读文件等,拼接好返回的HTTP响应 浏览器收到首屏html,开始渲染 解析html为dom 解析css为css-tree dom+css生成render-tree绘图 加载script的js文件 执行js所谓性...原创 2020-03-12 14:58:00 · 351 阅读 · 0 评论 -
定义一个基本的axios函数实现ajax请求
json-server用来模拟服务器API,测试接口 全局安装npm install -g json-server创建一个db.json文件{ "posts": [ { "id": 1, "title": "json-server", "author": "typicode" } ], "comments": [ { "id": 1, "body": ...原创 2020-03-04 13:05:25 · 184 阅读 · 0 评论 -
JS异步中的宏任务和微任务
1、JS中用来存储待执行回调函数的队列包含2个不同特定的列队2、宏列队:用来保存待执行的宏任务(回调),比如:定时器回调/DOM事件回调/ajax回调3、微列队:用来保存待执行的微任务(回调),比如:promise回调/MutationObserver回调4、JS执行时会区别这两个队列JS引擎首先必须先执行所有的初始化同步任务代码 每次准备取出第一个宏任务执行前,都要将所有的微任...原创 2020-02-28 19:56:39 · 232 阅读 · 0 评论 -
ES7中的async和await
async函数函数的返回值为promise对象 promise对象的结果由async函数执行的返回值决定await表达式await右侧的表达式一般为promise对象,但也可以是其它的值 如果表达式是promise对象,await返回的是promise成功的值 如果表达式是其它的值,此值为await表达式的返回值注意await必须写在async函数中,但async函数中可以没...原创 2020-02-28 18:06:57 · 129 阅读 · 0 评论 -
定义自己的Promise
ES5版本/* 自定义Promise函数模块:IIFE*/(function(window){ const PENDING = 'pending' const RESOLVED = 'resolved' const REJECTED = 'rejected' /* Promise构造函数 excutor:执行器函数(同步执行) ...原创 2020-02-28 13:24:50 · 140 阅读 · 0 评论 -
深入理解JS中的Promise
定义抽象表达promise是JS进行异步编程的新的解决方案具体表达从语法上来说promise是一个构造函数从功能上来说promise用来封装一个异步操作并获取结果作用指定回调函数更加灵活普通回调函数:必须在启动异步任务之前指定promise:启动异步任务 > 返回promise对象 > 给promise对象绑定回调函数支持链式调用,解决了回调地狱ap...原创 2020-02-26 14:12:43 · 301 阅读 · 0 评论 -
JS数组扁平化的5种方式
ES6提供的Array.prototype.flat方法let arr = [10,[1,2],[12,[3,4,[5,6,16]],6,6],7];arr = arr.flat(Infinity);arr = Array.from(new Set(arr)).sort((a, b) => a-b)console.log(arr) //[1, 2, 3, 4, 5, 6,...原创 2020-02-11 21:24:56 · 229 阅读 · 0 评论 -
es5和es6中的继承和静态方法
ES5中的静态方法function Person(name, age){ this.name = name this.age = age this.run = function () { console.log(`${this.name}---${this.age}`) }}Person.work = function () { ...原创 2020-02-10 20:08:01 · 232 阅读 · 0 评论 -
CORS跨域简单请求与非简单请求
定义CORS全称是跨域资源共享(Cross-orgin resource sharing)作用允许浏览器向跨源服务器发起请求,突破了同源限制问题使用浏览器和服务器要同时支持,IE版本不能低于10 分为简单请求和非简单请求,以下分别从几个方面来区分,下面SR为简单请求缩写,NSR为非简单请求1、请求方法SR—POST/GET/HEADNSR—PUT/DELETE...原创 2020-02-05 19:44:47 · 589 阅读 · 0 评论 -
JavaScript数据类型详解
1、基本数据类型number、string、boolean、undefined、null 2、引用数据类型object:普通对象{}、数组对象[]、正则对象/^$/、日期对象new Date() 、Math对象 、实例对象…… 数组是特殊的对象 对象的属性名可以是基本类型值,不可以是引用类型值,但是可以把引用类型存在一个变量中,默认会转换为字符串进行处理 例如:let o...原创 2020-02-03 19:57:40 · 81 阅读 · 0 评论