Javascript
文章平均质量分 92
getTheCheeseOfGod
这个作者很懒,什么都没留下…
展开
-
Observable 的由来
Observable 是 RxJS 的核心概念,是一切响应式操作的基础类,下面是 RxJS 文档中给出的基本示例:import { Observable } from 'rxjs'; const observable = new Observable(subscriber => { subscriber.next(1); subscriber.next(2); subscriber.next(3); setTimeout(() => { subscriber.nex原创 2021-09-12 11:19:32 · 244 阅读 · 0 评论 -
vue3响应式原理浅析
Vue3是新一代的Vue响应式框架,其中一项重大的改变是重写了响应式模块,使用了新版浏览器提供的Proxy代替Object.defineProperty实现响应式,本文对新版本响应式原理进行了一些分析。简单创建一个vue3项目使用vite工具即可快速生成一个vue3项目,并且自带热更新功能:$ npm init vite-app <project-name>$ cd <project-name>$ npm install$ npm run dev我们可以先使用Co.原创 2021-08-16 14:30:08 · 405 阅读 · 0 评论 -
typescript声明文件写法
目前typescript已经非常流行了,我们经常在开发中用到类型、接口、枚举等功能,但一般业务开发中很少需要用到声明文件,只有在诸如扩展一个全局变量、声明一些全局类型的情况下会用到。但如果要写一个node包,那么声明文件就是必不可少的,typescript的声明文件有多种形式,而且不同形式的用法差别很大,本文主要汇总了声明文件的书写方法。声明文件的定义声明文件一般包含一些变量和函数的类型定义,如C、C++的.h头文件。在typescript中以.d.ts为扩展名的文件是声明文件。声明文件的查找规则.原创 2021-08-15 21:39:24 · 942 阅读 · 0 评论 -
Vue实现组件化的基本思路
Vue.js(以下简称Vue)是时下流行的前端开发库,一般搭配其插件Vue-Router,Vuex一起使用,行业中称为Vue全家桶。Vue使用了MVVM的理念,将表现层(DOM)和数据层进行了分离,其基本思想是数据和DOM的一体化,操作数据即可变更DOM,表单交互亦可通过v-model指令改变数据,将前端开发者从DOM、数据两手抓的泥潭中解放出来。但是,使用这种方法的代价还是明显的,那就是Vu...原创 2020-01-15 00:22:30 · 469 阅读 · 0 评论 -
前端深拷贝的简易实现
JS这门语言没有提供深拷贝的内建方法,诸如slice, concat, Object.assign这些方法其实都是对象的浅拷贝,修改深层次引用时就会变更原始数据,这在一些必须使用深拷贝的场景是无法接受的,所以如何实现一个有用又靠谱的深拷贝方法变得至关重要。如果不想搞得太复杂,可以直接使用这个懒汉大法:JSON.parse(JSON.stringify(target)),它的思路很简单,先序列化再...原创 2020-01-12 10:43:28 · 428 阅读 · 0 评论 -
Vue获取DOM的几种方法
虽然Vue实现了MVVM模型,将数据和表现进行了分离,我们只需要更新数据就能使DOM同步更新,但是某些情况下,还是需要获取DOM元素进行操作(比如引入的某个库要求传入一个根dom元素作为根节点,或者写一些自定义指令),本文主要介绍几种在Vue中获取DOM元素的方法。使用DOM API直接找元素<script> ... mounted () { let elm = this....原创 2019-10-07 13:14:10 · 3130 阅读 · 0 评论 -
Js正则表达式——引用匹配组
Javascript的正则支持向后引用,即在正则式中使用已经匹配到的子串。什么意思呢?先看个问题:我要一个正则,匹配2080-02-26和2080.02.26这两个时间格式,怎么写呢?/^\d+[.\-]\d+[.\-]\d+$/显然是不行的,因为它也能匹配2080-02.26,2080.02-26,直接扑街。这时我们就可以使用正则提供的引用功能。它的写法是\n,看起来怎么跟个换行符一样?其实n...原创 2019-08-20 14:45:53 · 1299 阅读 · 0 评论 -
Js正则表达式——匹配一个空位置
以前说到正则表达式,我以为就是匹配一些字符,然后拿到匹配的元素一顿操作,或者使用类似String.replace这种方法对匹配到的元素进行替换。但是最近发现,它也能匹配空字符,并做一些事情。考虑这个问题:我要把123456789这个数字从个位数起每隔三位加一个,——即把它变成123,456,789这种格式,要怎么做?这是一个很实用的问题,与钱相关的东西或多或少都会被要求处理格式。我们可以用Ja...原创 2019-08-18 17:43:58 · 1096 阅读 · 0 评论 -
Javascript函数记忆及应用
记忆化(memoization)是一种构建函数的处理过程,让函数能够记住计算的结果。简而言之,就是把第一次计算的结果按照传参保存到某个地方,当以后以相同参数调用时不需重复执行,直接返回上次的结果,从而避免重复而繁琐的计算,提高了函数的执行性能。那么,到底把这些值保存到哪里呢?根据Javascript语法,函数是第一类对象,我们可以自由地给函数定义一些属性,于是很自然地可以想到,我们可以给函数定义...原创 2019-06-30 11:28:10 · 184 阅读 · 0 评论 -
Object.defineProperty函数的configurable配置
以前一直觉得Object.defineProperty是个非常普通的点,无非就是配置一下属性描述符,包括对象是否可枚举(enumerable)、可写(writable)之类的,然后就是定义一个get, set这种。而在实际写代码的过程中,这个东西用到的频率不大,更多的是出现在一些库的源码里头。最近注意到一个以前漏掉的点,就是属性是否可配置,configurable这个属性。以下是MDN对conf...原创 2019-06-16 17:42:00 · 9147 阅读 · 4 评论 -
前端本地存储localStorage及应用
localStorage原创 2019-02-17 15:29:37 · 2402 阅读 · 0 评论