![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS
文章平均质量分 94
超超超女
这个作者很懒,什么都没留下…
展开
-
Create React App
开始命令窗口,进入你要放置工程的目录npx create-react-app my-appcd my-appnpm start打开http://localhost:3000/看一下你的项目。要是创建TS版的:npx create-react-app my-app --template typescript还可以设置包管理器npx create-react-app my-app --use-npm命令:启动项目 npm start打包:npm run bui.原创 2021-08-13 15:17:23 · 126 阅读 · 0 评论 -
JS知识点梳理
本知识体系是为了查漏补缺,提升自己(不一定适合你们)而整理的。本文结构尽量做到精简,详细内容点击每个模块下方链接。文章将按模块进行分类,以简单的文字和外链相对深入的文章来整理各个模块。1js基础1-1 声明「js函数声明三种方式:」//(1) Function()构造器var f =new Function()//(2) 函数声明function f (){ console.log(2);}//(3) 函数表达式var f = function()转载 2021-03-24 17:44:29 · 151 阅读 · 0 评论 -
JS 异步编程六种方案
前言我们知道Javascript语言的执行环境是"单线程"。也就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务。这种模式虽然实现起来比较简单,执行环境相对单纯,但是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。为了解决这个问题,Javascript语言将任务的执行模式分成两种:同步和异步。转载 2021-03-24 15:03:24 · 149 阅读 · 0 评论 -
类的继承
function _inherits(subClass, ParentClass) { // 继承公有属性 subClass.prototype = Object.create(subClass.prototype, {constructor: {value: subClass}}) // 继承静态方法 Object.setPrototypeOf(subClass, parentClass);}let Child = (function(Pa...原创 2020-12-23 13:19:57 · 75 阅读 · 0 评论 -
ES6箭头函数
1. 箭头函数基本形式let func = (num) => num;let func = () => num;let sum = (num1,num2) => num1 + num2;[1,2,3].map(x => x * x);普通函数function a() { console.log('aa');}2. 箭头函数基本特点(1). 箭头函数this为父作用域的this,不是调用时的this箭头函数的this永远指向其父作用域,任何..转载 2020-12-21 15:47:14 · 145 阅读 · 0 评论 -
原型和原型链
原型 prototype 原型链 _proto_每一个函数都有一个Prototype属性每一个对象都有_proto_属性function Animal () { this.type = '哺乳类'}console.log(Animal.prototype) // Animal {}let animal = new Animal();console.log(animal._proto_ === Animal.prototype) // true ...原创 2020-07-30 20:28:12 · 94 阅读 · 0 评论 -
JavaScript执行上下栈和作用域链
全局上下文有三个非常重要的属性:1.变量对象2.作用域链3.this指向var a = 1function sum () {var b = 2;return a + b;}sum();sum.[[scope]] = { globalContext.VO}ECS = [ globalContext, sumContext]sumContext = { AO:{ arguments:{ ...原创 2020-07-30 19:49:17 · 204 阅读 · 0 评论 -
前端监控-静态资源
静态资源的加载情况index。js中import resource from './resource.js';resource.init(data => { console.log(data);})resource.jslet processData = () => { let data = { name: _.name, initiatorType: _.initiatorType, duration:_.原创 2020-07-09 11:47:28 · 231 阅读 · 0 评论 -
前端性能优化1
1. 使用Fragment2. pureComponent2.1 重复渲染 浅比较class PureComponent extends Component { shouldComponentUpdate(newProps) { return !shallowEqual(this.props, newProps); // 浅比较 }}function shallowEqual(obj1,obj2) { if (obj1 === obj2) {...原创 2020-07-07 18:06:17 · 112 阅读 · 0 评论 -
generator的使用
generator生成器 =》 遍历器 =》 数组 =》 类数组const likeArray = {0: 'a', 1: 'b', 2:'c', 3: 'd', length: 4}1. Array.from(likeArray); 转成了数组2. 给likeArray增加个属性:遍历器 likeArray[Symbol.iterator] = function() { let i = 0; return { next: () => { retu...原创 2020-07-02 11:23:56 · 320 阅读 · 0 评论 -
柯里化-写抽象函数
函数柯里化,反柯里化判断变量的类型常用的判断类型的方法有四种:1.typeof 不能判断对象类型2.constructor 可以找到这个变量是通过谁构造出来的3.instanceos 判断谁是谁的实例 _proto_4.Object.prototype.toString.call() 缺陷不能区分谁是谁的实例写个方法判断类型function isType(type,value) { return Object.prototype.toString.call(va...原创 2020-07-01 14:59:19 · 173 阅读 · 0 评论 -
promise特点
promise 为什么会产生 解决异步问题1.多个异步请求并发(希望同步最终的结果)promise.all2.链式异步请求的问题 上一个人的输出是下一个人的输入 promise的链式调用可以解决这个问题3.缺陷:还是基于回调1. promis有三个状态:成功态resolve,失败态reject, 等待态pendingpromise就是一个类 new Promise((resolve, reject) => {2. 用户自己决定成功的原因和失败的原因, 成功和失败也是用...原创 2020-07-01 14:20:28 · 392 阅读 · 0 评论 -
callback回调-高阶函数的使用
1、高阶函数1)装饰器、前端埋点、在ajax请求外包装一层自己的逻辑2)几次之后再执行函数2、异步 并发,积攒结果到school中3、发布emit 订阅on, 中间媒介this._arr订阅就是把fn放进数组里,发布就是循环执行数组里的每一个函数。...原创 2020-01-27 18:55:58 · 376 阅读 · 0 评论 -
Throttle和Debounce
避免 某个【事件】 在【较短时间段内】(称为 delta T)连续触发而引起的不必要的连续执行。二者的根本的区别在于 throttle 保证了在每个 delta T 内至少执行一次,而 debounce 没有这样的保证。体现在实现层面上的区别就是,对于 debounce 来说每次事件触发时参考的「时间点」是「上一次事件触发的时间」并且在延时没有结束时会重置这个延时为 500ms,而对于...原创 2019-11-07 16:24:04 · 271 阅读 · 0 评论 -
for in 、 for of、 forEach 、map 区别
for...in1.for in是为循环enumerabe 对象设计的let obj = {a: '1', b: '2', c: '3', d: '4'}for (let o in obj) { console.log(o) //遍历的实际上是对象的属性名称 a,b,c,d console.log(obj[o]) //这个才是属性对应的值1,2,3,4}...原创 2019-10-10 13:55:41 · 230 阅读 · 0 评论