![](https://img-blog.csdnimg.cn/3e1b3b5174994d0eb749d5fbcb2a126b.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
js and ts
文章平均质量分 83
介绍JavaScript跟TypeScript相关知识点
前端不释卷leo
热爱前端,一起学习,一起进步。积极更新博客。
展开
-
JS/JQ实现小程序/H5验证码页面
JS/JQ实现小程序/H5验证码页面原创 2024-01-05 16:21:23 · 884 阅读 · 0 评论 -
推荐几种优雅处理前端异常的方式
异常是不可控的,会影响最终的呈现结果,我们有充分的理由去做这样的事情。异常处理,势在必行。原创 2022-07-24 21:00:20 · 2388 阅读 · 10 评论 -
『需求优化』使用 postMessage 解决 localStorage 跨域问题
postMessage() 用于安全地实现跨源通信。记录一次真实项目需求优化。原创 2022-07-21 21:39:08 · 1404 阅读 · 8 评论 -
下班前几分钟,我彻底弄懂了JSON.stringify()
下班前几分钟,我彻底弄懂了JSON.stringify() ,你呢?原创 2022-07-13 21:30:04 · 2157 阅读 · 16 评论 -
这3个高级前端常用的API,有你正在用的吗?
介绍三个高级前端常用的API,getComputedStyle(),getBoundingClientRect(),requestAnimationFrame(),快来看看有你正在用的吗?原创 2022-07-05 20:43:58 · 1475 阅读 · 10 评论 -
ECMAScript 2022 正式发布,有你了解过的吗?
目录前言正文一、总览二、详述1、Top-level await(顶层 await)2、Object.hasOwn()3、at()4、error.cause5、正则表达式匹配索引6、类总结2022年6月22日,第123届 ECMA 大会批准了 ECMAScript 2022 语言规范,这意味着它现在正式成为标准。下面就来看看 ECMAScript 2022 有哪些新特性,是否有你了解过的。1、Top-level await(顶层 await)2、Object.hasOwn()3、at()4、error.cau原创 2022-06-29 22:08:28 · 1694 阅读 · 19 评论 -
JavaScript中遍历对象的方法,你掌握了几种?
目录前言正文定义对象for…in…Object.entries()/Object.keys()/Object.values()Object.getOwnPropertyNames(targetObj)Object.getOwnPropertySymbols(targetObj)Reflect.ownKeys(targetObj)总结前言对象是 JavaScript 中一种非常常用的数据类型,由一个个属性名和属性值一 一对应的键值对组成。在实际开发中,我们经常需要.原创 2022-05-24 20:28:36 · 6181 阅读 · 4 评论 -
下班前几分钟,我弄懂了 type 与 interface 的区别
目录前言正文一、基本概念1、type(类型别名)2、interface(接口)二、相同之处1、都可以用来定义对象和函数2、都可以实现继承三、不同之处1、type 可以做到而 interface 不能做到2、interface 可以做到而 type 不能做到四、使用建议前言在 TypeScript 中,type 和 interface 这两个概念比较容易混淆,它们都可以用来表示 接口,但是在实际使用上会存在一些差异。本文主要对二者的区别进行简述,希望能够原创 2022-03-14 15:58:00 · 11094 阅读 · 16 评论 -
搬砖随笔——JavaScript代码简洁之道
目录1、通过条件判断给变量赋值布尔值2、判断数组长度不为零3、使用 includes 简化条件判断4、使用 some 判断是否有满足条件的元素5、使用 forEach 遍历数组,不形成新数组6、使用 filter 过滤原数组,形成新数组7、使用 map 对数组中所有元素批量处理,形成新数组8、解构数组交换变量9、解构对象10、字符串拼接使用 ${}1、通过条件判断给变量赋值布尔值// badif (a === 'a') { b = true;}原创 2022-03-10 21:43:23 · 1175 阅读 · 9 评论 -
下班前几分钟,我彻底弄懂了这5种for循环的差异
目录前言正文一、角色介绍1、for2、forEach3、map4、for in5、for of二、使用差异1、场景差异2、能力差异三、性能比较四、使用建议前言for循环 在平时开发中使用频率很高,因为你在编码时避免不了对数据进行处理,而处理数据中的常用方式便是对数组或对象等进行遍历,此时 for循环 便无法缺席。某天,下班前几分钟,我对几种常用的 for循环 在使用场景与运行性能等方面进行了简要对比。正文本文主要介绍了5种常用 for循环:原创 2022-03-04 21:23:02 · 12296 阅读 · 63 评论 -
下班前几分钟,我彻底弄懂了 undefined 和 null 的区别
目录前言一、基本概念1、undefined2、null二、简单区别三、表现形式1、typeof2、== 与 ===3、Object.prototype.toString.call4、+ 运算 与 Number()5、JSON.stringify6、let undefiend = 'test'四、建议前言undefined 和 null 的区别是个老生常谈的话题了,之前我对二者的区别只是简单理解,例如二者转成 Boolean 类型都是 false、使原创 2022-02-20 20:25:11 · 14336 阅读 · 25 评论 -
30+个 JavaScript 知识点汇总,你都了解了吗?
前言无论你是已经在工作岗位上亦或是正在寻求新的工作机会,掌握常见的 JavaScript 面试知识点,不但可以帮助你扩展知识面、培养逻辑思维,还能帮助你提升自己的工作能力。不妨看看,也许有你所不了解的。正文1、JavaScript 的数据类型及其存储方式截止目前,JavaScript 一共有8种数据类型,可大致分为基本数据类型(也叫原始数据类型)与引用数据类型基本数据类型:Undefined、Null、Boolean、Number、String、Symbol(es6新增,表示独一无二的值原创 2022-02-10 17:17:09 · 8985 阅读 · 19 评论 -
下班前几分钟,我彻底弄懂了JavaScript的原型与原型链
前言JavaScript 原型与原型链历来都是面试的重点,也是难点,理解起来没有那么容易。正文理解原型的几个要点,能更容易理解原型这个概念:1、所有的引用类型(数组、对象、函数)可以自由扩展属性(除null以外);2、所有的引用类型都有一个“__proto__”属性(隐式原型,是一个对象);3、所有的函数都有一个“prototype”属性(显式原型,是一个对象);4、所有引用类型的“__proto__”属性指向它的构造函数的“prototype”属性;5、当访问一个对象的属性原创 2022-01-27 20:20:36 · 7171 阅读 · 25 评论 -
2022 JavaScript 数组(Array)方法1w+字汇总(含数组新特性,全到没朋友,再也不用东拼西凑了)
目录前言创建数组字面量方式构造函数方式Array.of 方式Array.from 方式数组方法返回新数组concat()join()slice()map()filter()toLocaleString()toString()flat()flatMap()entries()keys()values()改变原数组push()pop()unshift()shift()sort()reverse()...原创 2022-01-19 23:14:06 · 4291 阅读 · 28 评论 -
20+ 个JavaScript技术 -- 善于利用,可提升自己的开发效率(ES7-ES12新特性1w+字汇总,总有你需要的)
目录前言1、Array.prototype.includes()2、幂运算符 **3、Object.values()4、Object.entries()5、Object.getOwnPropertyDescriptors()6、String.prototype.padStart7、String.prototype.padEnd7、async / await8、Rest & Spread9、for await of10、Promise.prototype原创 2022-01-09 22:15:36 · 5533 阅读 · 18 评论 -
我与 JavaScript 装饰器(Decorator)的一次碰面
目录1、装饰器是什么?2、装饰器怎么用?类装饰方法/属性装饰3、装饰器工厂4、执行顺序5、应用场景1、装饰器是什么?装饰器是一种特殊类型的声明,它能够被附加到类声明,方法, 访问符,属性或参数上,是一种在不改变原类和使用继承的情况下,动态地扩展对象功能。装饰器本质不是什么高大上的结构,就是一个普通的函数,@expression 的形式其实是Object.defineProperty的语法糖,expression求值后必须也是一个函数,它会在运行时被调用,被装饰的声明信原创 2022-01-06 20:29:37 · 1446 阅读 · 10 评论 -
识别并避免 Js 内存泄漏,跟低级缺陷say goodbye,让老总对你刮目相看
目录内存泄漏常见的内存泄漏类型1、意外的全局变量2、被遗忘的定时器或回调函数3、脱离DOM的引用4、闭包扩展垃圾回收机制引用计数法标记清除法(常用)内存泄漏对于持续运行的服务进程(daemon),必须及时释放不再用到的内存。否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。 对于不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak)。常见的内存泄漏类型1、意外的全局变量在一个局部作用域中,未定义的变量会在全局对象创建一个新原创 2022-01-03 13:52:55 · 2856 阅读 · 5 评论 -
ES6 你是懂了,可你真的会用了吗?(这10点,检验你是否中招了)
前言以下总结为本人开发中常用的部分ES6知识点,并不代表全部,且需注意一点,ES5之后的js语法统称为ES6(以ES7 ES8等来命名未免有失规范)。1、解构赋值我们在一个程序中,经常会进行取值操作,如从某个对象obj中取值let obj = { a:1, b:2, c:3}ES5取值let a = obj.a;let b = obj.b;let c = obj.c;上面的取值方式,属性少还好,万一属性很多时,代码量就会增加很多,看上去显得冗余、原创 2021-12-31 20:23:15 · 3320 阅读 · 15 评论 -
分享 5 个你现在就能用上的 Js ES12 新特性(数字分隔符、replaceAll()、Promise.any()、......)
ECMAScript 2021(第 12 版)现已可用,并附带新功能和语法改进。ECMA International 已于 2021 年 6 月 22 日最终确定了这些规范。实施这些改进是为了使 JavaScript 更加健壮并帮助开发人员轻松完成任务。以下详细展示 ECMAScript 2021 提供的前 5 项功能,以便你可以开始在你的项目中使用它们,并改善你的 JavaScript 体验。初学者和有经验的开发人员可以从本文中受益。ECMAScript 2021 更新提供的 5 大 JavaSc原创 2021-12-18 19:05:40 · 2754 阅读 · 4 评论 -
Js 箭头函数 详细介绍(多种使用场景差异,你学会了吗?)
简要认识箭头函数是在ES6中添加的一种规范,简化了匿名函数定义的写法。基本格式完整写法let fn = (x,y) => { return x + y;}//function()写法let fn = function(x,y) { return x + y;}只有1个参数时,可以省略 ()//参数只有1个时,可以省略 ()let fn = x => { return x + x;}//function()写法let fn = funct原创 2021-12-17 21:26:15 · 2352 阅读 · 5 评论 -
Vue 防抖节流 详细介绍(面试常客、去繁从简、性能优化)
本文主要介绍js中的防抖和节流以及在vue项目中如何使用它们来达到性能优化的目的。前置知识点:js、闭包、es6、vue等。使用背景:很多场景下,页面具有交互性,免不了会触发一些事件以及发送一些请求,依赖于像输入框、选择框、点击按钮等等。这时候就会出现一个现象,对使用者的操作不可控。如一个点击按钮,其绑定一个事件或发送一个请求,那么在连续快速点击时,如果不做限制,那么点击多次,将触发对应次数的事件或者发送对应次数的请求,这对使用者来说可能就是短时间内的简单操作,但是试想一下,在连续点击多次的情况原创 2021-12-04 18:20:50 · 5625 阅读 · 7 评论 -
(TypeScript 接口)与字节跳动的学长简单交流,他告诉我Ts项目中用得较多的是接口(interface),于是我捣鼓了一下。
前两天跟字节跳动的大佬交流了一下,了解他们项目主要用的什么技术栈,他简略地告诉我是react跟ts,我直呼一个“好家伙”,果然大厂基本都用这两个。之后又具体问了一下ts用得比较多的知识点是哪一块(因为我个人觉得js跟ts的差别并不是很大,只是ts多出了一些扩展功能),他跟我说用得相对较多的是interface,也就是接口。于是我决定单独对ts的接口(interface)进行介绍,加深印象。之前有总结过ts的基础知识,其中有为ts与js做了简单对比,不了解的可以移步前往阅读。TypeScript 与 Ja原创 2021-11-26 21:50:19 · 2504 阅读 · 3 评论 -
面试官:请简单实现一个Js单例模式(一看吓一跳,easy)
单例模式:顾名思义,即一个类只有一个实例,通常的做法是先判断类是否已存在实例,如果不存在,那就创建一个新的实例,如果已经存在,就直接使用已存在的实例。涉及到的知识点:JavaScript 类、闭包。新建一个简单的类 Personclass Person { constructor(name){ //构造函数,创建实例的时候执行 this.name = name } showName(){ console.log('my name is',this.name)原创 2021-11-19 20:22:05 · 1268 阅读 · 5 评论 -
Js sort()核心用法,有了它,你无需再为数组排序而发愁
定义和用法sort() 方法用于对数组的元素进行排序(常规数组、对象数组)。排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序(按照字符串Unicode编码)。注意:当数字是按字母顺序排列时"40"将排在"5"前面。使用数字排序,你必须通过一个函数作为参数来调用。函数指定数字是按照升序还是降序排列。注意:这种方法会改变原始数组!基本使用1、对常规字符串数组进行排序(默认排序):var fruits = ["Banana", "Orange".原创 2021-11-18 21:19:04 · 3745 阅读 · 4 评论 -
Js面试常客之手写实现call、apply、bind方法(一看就会,附详细截图)
我们知道,call、apply、bind函数可以改变this的指向。用例子验证,现在有一个对象,里面有属性跟一个showName方法let initObj = { name:'gao', age:18 showName:function(){ console.log(this.name,'name') }}直接执行如下代码initObj.showName()打印信息如下此时,新建一个对象,里面只有属性,没有方法let newObj = { .原创 2021-11-16 22:18:50 · 1300 阅读 · 3 评论 -
TypeScript 与 JavaScript 的区别(TypeScript万字基础入门,了解TS,看这一篇就够了)
TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准(ES6 教程)。TypeScript 由微软开发的自由和开源的编程语言。TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。TypeScript 是一种给 JavaScript 添加特性的语言扩展。增加的功能包括:类型批注和编译时类型检查 类型推断 类型擦除 接口 枚举 Mixin 泛型编程 名字空间原创 2021-11-02 22:46:47 · 4940 阅读 · 8 评论 -
Js 异步请求按顺序调用解决方案(真实工作场景,axios、Promise、async await)
需求背景:现在需要调用多个异步请求,要求某个请求调用成功之后,接着调另外的请求,有时候需要用上一个请求得到的结果,作为下一个请求的参数或者条件,继续调用另一个请求。演示准备:安装axiosnpm install axios --save全局使用//main.jsimport axios from 'axios'Vue.prototype.$axios = axios实现一:PromisePromise 是一个 ECMAScript 6 提供的类,目的是更加优雅地书写复.原创 2021-11-01 22:48:30 · 7883 阅读 · 4 评论