
JavaScript
文章平均质量分 78
Crystal的JS学习整理
CrystalAngelLee
GitHub:https://github.com/CrystalAngelLee
LinkdIn:https://www.linkedin.com/in/%E5%98%89%E8%90%B1-%E6%9D%8E-b56531149/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
函数式编程
函数式编程其实就是利用纯函数来实现一些细粒度的函数,然后再通过函数的组合把这些细粒度的函数组合成功能更强大的函数原创 2022-03-10 17:25:39 · 1394 阅读 · 0 评论 -
谈谈你是如何理解 JS 异步编程的,EventLoop、消息队列都是做什么的,什么是宏任务,什么是微任务?
JS 异步编程JS 是单线程模式工作的(一个时间内只能做一件事),当有较多任务的情况下,任务需要依次排队等待完成,如果遇到某一个或几个任务很耗时的情况就会给用户一种假死的状态,极大地降低了体验效果。为了解决这个问题,提出了异步的工作模式,即不会等待任务的执行,开启任务后立即往后执行下一个任务,耗时任务结束后会自动调用执行传入的回调函数EventLoop单线程意味着所有的任务必须排队依次执行,JS 的任务分为同步任务和异步任务,同步任务会进入主线程中依次执行,遇到异步任务则会将其放入消息队列中等..原创 2021-03-03 10:05:32 · 206 阅读 · 0 评论 -
发布订阅模式和观察者模式
发布订阅模式和观察者模式发布订阅模式观察者模式发布订阅模式 VS 观察者模式发布订阅模式订阅者、发布者、信号中心// 具体实现可参考:https://blog.youkuaiyun.com/baidu_33591715/article/details/114258885// 事件触发器class EventEmitter { constructor () { // { 'click': [fn1, fn2], 'change': [fn] } this.subs = Object.cr原创 2021-03-02 02:27:02 · 206 阅读 · 0 评论 -
EventEmitterの实现
Events 基本介绍Node.js的events 模块对外提供了一个 EventEmitter 对象,用于对 Node.js 中的事件进行统一管理。因为 Node.js 采用了事件驱动机制,而 EventEmitter 就是 Node.js 实现事件驱动的基础。在 EventEmitter 的基础上,Node.js 中几乎所有的模块都继承了这个类,以实现异步事件驱动架构。EventEmitter的简单使用var events = require('events');var eventEmitter原创 2021-03-01 14:19:21 · 339 阅读 · 0 评论 -
JS异步编程
JS异步编程JS 异步编程方案JS 异步编程的实现方式深入理解异步编程的核心 Promise理解 Generator、Async/await 等异步编程的语法糖GeneratorAsync/awaitJS 异步编程方案JS异步编程的使用回调函数、事件监听、Promise、Generator、async/await什么是同步同步就是在执行某段代码时,在该代码没有得到返回结果之前,其他代码暂时是无法执行的,但是一旦执行完成拿到返回值之后,就可以执行其他代码了。换句话说,在此段代码执行完未返回结果之原创 2021-03-01 11:07:54 · 322 阅读 · 0 评论 -
数组の学习
数组の学习Array 构造器Array 构造器用于创建一个新的数组new Array(arg1, arg2,…),参数长度为 0 或长度大于等于 2 时,传入的参数将按照顺序依次成为新数组的第 0 至第 N 项(参数长度为 0 时,返回空数组);new Array(len),当 len 不是数值时,处理同上,返回一个只包含 len 元素一项的数组;当 len 为数值时,len 最大不能超过 32 位无符号整型,即需要小于 2 的 32 次方(len 最大为 Math.pow(2,32)),否则将原创 2021-01-28 17:01:09 · 446 阅读 · 0 评论 -
JSON.Stringify
JSON.stringify 是日常开发中经常用到的 JSON 对象中的一个方法,JSON 对象包含两个方法:一是用于解析成 JSON 对象的 parse();二是用于将对象转换为 JSON 字符串方法的 stringify()JSON.parse【参考链接: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse】JSON.parse() 方法用来解析JSON字符串,构.原创 2021-01-27 14:18:09 · 17312 阅读 · 0 评论 -
JS闭包
作用域原创 2021-01-26 17:53:59 · 127 阅读 · 0 评论 -
继承的学习【with new call apply bind】
JS 实现继承的几种方式方式一: 原型链继承参考外链: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chainfunction Parent1() { this.name = 'parent1'; this.play = [1, 2, 3]}function Child1() { this.type = 'child2';}Child1.pro原创 2021-01-21 12:59:00 · 151 阅读 · 0 评论 -
深浅拷贝的学习
浅拷贝自己创建一个新的对象,来接受要重新赋值或引用的对象值。如果对象属性是基本的数据类型,复制的就是基本类型的值给新对象;但如果属性是引用数据类型,复制的就是内存中的地址,如果其中一个对象改变了这个内存中的地址,肯定会影响到另一个对象方案一:object.assign https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/assignconst target = { a:原创 2021-01-20 16:54:54 · 123 阅读 · 0 评论 -
数据类型的学习
数据类型的概念8种数据类型基础类型存储在栈内存中,被引用或拷贝时,会创建一个完全相等的变量引用类型存储在堆内存中,存储的是地址数据类型检测方案一: typeoftypeof 1 // 'number'typeof '1' // 'string'typeof undefined // 'undefined'typeof true // 'boolean'typeof Symbol() // 'symbol'typeof null // 'object'typeof [] // 'ob原创 2021-01-19 17:53:14 · 184 阅读 · 0 评论 -
Crystal 谈 this
this指向当前环境举个栗子var obj = { func() { console.log(this.name) }, name: 'lily'}var name = 'lisa'var fun = obj.func;obj.func() //lilyfun() // lisa解释一下对于最外层的变量定义来说,他们的运行环境均指向当前的window对象在obj内部的方法中,this指向当前的obj对象obj.func是直接调用了对象内部的方法,所以他的this作用域原创 2020-11-30 17:50:25 · 133 阅读 · 0 评论 -
Console的一些小事
1、 console.log()、console.info()、console.debug()的作用都是在浏览器控制台打印信息的。2、 console.info()和console.debug()本质上与console.log()没有区别。是console.log()的另一个名字而以,可以理解为它们三个其实就是同一个,只不过名字不一样。 console.info()打印出的信息,在控制显示的时...原创 2018-08-28 19:24:48 · 204 阅读 · 0 评论 -
ES6:export default 和 export 区别【采坑】
没有默认导出的报错~,更改为export defult就正常了先拉一篇文章充数,并没有定位到明确的差别https://www.jianshu.com/p/edaf43e9384f原创 2018-12-11 10:39:32 · 1129 阅读 · 0 评论 -
常用的正则表达式
一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2...原创 2018-05-27 16:30:45 · 148 阅读 · 0 评论 -
JS--正则表达式
目录ECMASCRIPT 61、字符串的正则方法2、u修饰符【Unicode模式】3、RegExp.prototype.unicode 属性4、y修饰符【“粘连”(sticky)修饰符】5、RegExp.prototype.sticky 属性6、RegExp.prototype.flags 属性7、s 修饰符:dotAll 模式【具体的你们自己看书吧~...原创 2019-05-13 10:19:34 · 556 阅读 · 0 评论 -
常见JS问题的链接收藏
ES6、ES7、ES8、ES9、ES10新特性一览 https://juejin.im/post/5ca2e1935188254416288eb2 JS 中可以提升幸福度的小技巧:https://juejin.im/post/5b51e5d3f265da0f4861143c 11个教程中不常被提及的JavaScript小技巧:https://segmentfault.com/a/119000...原创 2019-05-15 16:36:57 · 143 阅读 · 0 评论 -
JS 踩坑
e和this的区别(今天在尝试antd插件使用的时候尝试了这个问题,算踩坑了吧。。。)1.e.target.value获取的就是你选择接受事件的元素输入的或者选择的值。参数e接收事件对象。而事件对象也有很多属性和方法,其中target属性是获取触发事件对象的目标,也就是绑定事件的元素,e.target表示该DOM元素,然后在获取其相应的属性值。2. this就是指向当前事件...原创 2018-08-25 19:00:17 · 475 阅读 · 0 评论 -
async
一、知识点:1、async 函数 : 是 Generator 函数的语法糖2、async函数返回一个 Promise 对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。3、示例async function getStockPriceByName(name) { const symbol = ...原创 2018-09-04 19:45:10 · 470 阅读 · 0 评论 -
JS--数组
稀疏数组:稀疏数组就是包含从0开始的不连续索引的数组。稀疏数组的length属性值大于元素的个数创建数组var arr = [];// 使用构造函数var arr = new Array();数组元素的添加和删除a.push() 在数组末尾增加一个或多个元素a.pop() 减少长度1并返回被删除元素的值a.unshift() 在数组首部插入一个...原创 2018-09-27 23:05:44 · 174 阅读 · 0 评论 -
JS获取宽高
网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线的宽) 网页可见区域高:document.body.offsetHeight (包括边线的宽) 网页正文全文宽:document.body.scrollWidth 网页正文全...原创 2018-09-27 17:01:47 · 174 阅读 · 0 评论 -
监听滚动条到底部事件响应
直接拿一个页面过来说问题,好桑心获取节点困了好久,然而只想简简单单用这篇文章来记录滚动条滚到底部触发事件@inject('blogAttentionStore')@observerexport default class ShareToMe extends React.Component { constructor(props) { super(props); le...原创 2018-10-17 19:24:47 · 1687 阅读 · 0 评论