![](https://img-blog.csdnimg.cn/2021012115303077.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
js
文章平均质量分 76
。
美式因子
美式我需要
展开
-
白话讲讲EventEmitter的实现
白话讲讲EventEmitter的实现首先我们要知道什么是EventEmitter?简单来说就是对事件触发与事件监听器功能的封装。EventEmitter有什么API是需要我们去实现的on 对事件进行监听emit进行触发once是指只监听一次alloff是关掉所有消息队列中的监听off关掉相应的监听事件怎么实现构造函数首先定义一个存放消息队列的对象,每个消息队列都有一个名字eventname,这个消息队列可以承载多个事件对象每个事件对象有两个属性:listener(存放回调函数原创 2021-04-28 00:06:25 · 297 阅读 · 0 评论 -
三大门派var,const,let之间的纠纷
三大门派var,const,let之间的纠纷let,const是属于块级作用域的,而var是属于全局作用域的对于这三大门派,我们可以从以下四点进行分析学习作用域规则重复声明/重复赋值变量提升(hoisted)暂时死区(TDZ)var的缺陷是什么?var 存在变量提升,那么接下来的这段会发生什么? function fun2(){ let f3 = 3 const f4 = 4 //Uncaught ReferenceError:原创 2021-04-25 22:08:36 · 133 阅读 · 0 评论 -
异步编程--Promise->Generator->Async/Await->异步生成器
Promise[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-luKEmslp-1616849620183)(/Users/macos/Desktop/note/images/手写Prmoise.png)]主要API和属性Promise 构造函数: Promise (excutor) {}同步函数,是个执行器,会立即执行Promise.prototype.then 方法: (onResolved, onRejected) => {}根据状态去执行不一样的原创 2021-03-27 20:55:38 · 221 阅读 · 0 评论 -
面向对象编程
函数的另一种形式利用对象收编变量利用点语法来使用对象的方法新创建的对象继承方法将方法放入函数对象中检测类链式调用给函数都添加一个方法封装原创 2021-03-26 09:53:23 · 58 阅读 · 0 评论 -
JS中继承的那些事
JS 实现继承的几种方式原创 2021-03-21 10:27:54 · 66 阅读 · 0 评论 -
异步编程中对Generator和thunk函数的认识
什么是Generator 如何定义Generator 是一个带星号的“函数”(它并不是真正的函数,下面的代码会为你验证),可以配合 yield 关键字来暂停或者执行函数。function* gen() { console.log("enter"); let a = yield 1; let b = yield (function () {return 2})(); return 3;}var g = gen() // 阻塞住,不会执行任何语句con原创 2021-03-02 11:17:59 · 201 阅读 · 0 评论 -
JavaScript ——十大经典排序算法汇总(整理中)
冒泡排序(Bubble Sort)冒泡排序是一次比较两个元素,如果顺序是错误的就把它们交换过来。走访数列的工作会重复地进行,直到不需要再交换,也就是说该数列已经排序完成。// 冒泡排序(已优化)const bubbleSorted2 = arr=>{ const length = arr.length if(length <=1){ return } for (let i = 0;i<length-1;i++){ let原创 2021-02-26 19:41:01 · 240 阅读 · 2 评论 -
JS模块化规范之commonjs,AMD
什么是commonjsCommonJs 是一种 JavaScript 语言的模块化规范,它通常会在服务端的 Nodejs 上使用。commonjs服务端应用module.exports = value(只能使用一个)module.exports = function(){}exports.XXX(可以定义多个)npm initcommonjs浏览器利用插件Browserify进行打包,因为浏览器不认识nodejs语法全局安装 npm install browserify -g局部(原创 2021-02-21 22:47:33 · 230 阅读 · 0 评论 -
JS 闭包难点剖析
目录JavaScript 中的作用域是什么意思?全局作用域函数作用域块级作用域闭包会在哪些场景中使用?闭包产生的原因作用域链通过定时器循环输出自增的数字通过 JS 的代码如何实现?这是为什么呢利用 IIFE使用 ES6 中的 let定时器传入第三个参数JavaScript 中的作用域是什么意思?JavaScript 的作用域通俗来讲,就是指变量能够被访问到的范围,在 JavaScript 中作用域也分为好几种,ES5 之前只有全局作用域和函数作用域两种原创 2021-02-03 22:50:40 · 159 阅读 · 0 评论 -
JS手写new,call,apply,bind每一步注释写得清清楚楚
new//创建一个对象//将构造函数的作用域给新对象//执行构造函数中的代码//返回新对象function _new(context,...args){ if(typeof context != 'function'){ throw 'context must be a function' } //实例对象 let obj = new Object() //实例对象的 __proto__属性 指向构造函数的原生对象 obj.__proto__ = Object.原创 2021-02-02 22:51:59 · 241 阅读 · 1 评论 -
JS深浅拷贝
浅拷贝的原理和实现对于浅拷贝的定义我们可以初步理解为:自己创建一个新的对象,来接受你要重新复制或引用的对象值。如果对象属性是基本的数据类型,复制的就是基本类型的值给新对象;但如果属性是引用数据类型,复制的就是内存中的地址,如果其中一个对象改变了这个内存中的地址,肯定会影响到另一个对象。方法一:object.assignobject.assign 是 ES6 中 object 的一个方法,该方法可以用于 JS 对象的合并等多个用途,其中一个用途就是可以进行浅拷贝。该方法的第一个参数是拷贝的原创 2021-01-24 22:18:58 · 162 阅读 · 0 评论 -
JS之数据类型转换
这里写目录标题强类型转换Number()parseInt()parseFloat()Boolean()隐式类型转换'=='的隐式类型转换'+'的隐式转换规则强类型转换Number()如果是布尔值,true 和 false 分别被转换为 1 和 0; 如果是数字,返回自身;如果是 null,返回 0; 如果是undefined,返回 NaN;如果是字符串,遵循以下规则:如果字符串中只包含数字(或者是 0X / 0x开头的十六进制数字字符串,允许包含正负号),则将其转换为十进制;如果字符串中包含有原创 2021-01-23 22:38:39 · 118 阅读 · 0 评论 -
JS高级之数据类型之问——检测篇
这里写目录标题JS的数据类型JS的数据类型检测第一种判断方法:typeof第二种判断方法:instanceof实现一个 instanceof 的底层实现第三种判断方法:Object.prototype.toString实现一个全局通用的数据类型判断方法Object.is和===的区别?JS的数据类型、JS的数据类型检测第一种判断方法:typeof console.log("1="+typeof 1) console.log("null="+typeof null) console.log("原创 2021-01-23 21:52:54 · 85 阅读 · 0 评论 -
JS基础语法(二)——对对象的详细认识
这里写目录标题对象对象的创建方式new关键词this详解对象的使用遍历对象的属性删除对象的属性简单类型和复杂类型的区别基本类型在内存中的存储复杂类型在内存中的存储基本类型作为函数的参数复杂类型作为函数的参数内置对象MDN如何学习一个方法?Math对象案例Date对象案例Array对象案例基本包装类型String对象案例对象对象的创建方式对象字面量var o = { name: 'zs', age: 18, sex: true, sayHi: function () { c原创 2020-08-03 22:45:19 · 161 阅读 · 2 评论 -
JS基本语法(一)
JavaScript介绍JavaScript是什么JavaScript 运行在客户端(浏览器)的编程语言,一种运行在客户端 的脚本语言JavaScript的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用 于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。JavaScript和HTML、CSS的区别HTML:提供网页的结构,提供网页中的内容CSS: 用来美化网页JavaScript: 可以用来控制网页内容原创 2020-08-02 21:40:59 · 281 阅读 · 0 评论