![](https://img-blog.csdnimg.cn/2020053011143433.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaScript
文章平均质量分 87
领略JavaScript的魅力
编程三昧
学习有趣的知识,交识有趣的朋友,造就有趣的灵魂!
展开
-
系统学习 TypeScript(六)——认识接口
TypeScript 接口就像是一份具有名称的契约,契约的内容规定了某个数据结构里面的数据组成和类型。原创 2022-03-05 19:00:37 · 555 阅读 · 0 评论 -
不联网的情况下,使用 electron-builder 快速打包全平台应用
Electron 之所以能够日益风靡,是因为其简单易用且对各个操作平台具有良好的支持。今天我就来分享一下怎么使用一套代码,快速打包生成各主流平台安装包的经验。原创 2022-03-03 21:14:05 · 2665 阅读 · 0 评论 -
系统学习 TypeScript(五)——联合类型
到底该怎样限制 res 的类型,让它同时满足 number 和 string 的类型检查呢?这就涉及到我们今天要学的 TypeScript 的另一种类型声明——联合类型。原创 2022-03-01 18:30:19 · 888 阅读 · 0 评论 -
迭代器总结
数据遍历是我们日常开发中经常用到的逻辑,除了最常见的 for、while、forEach 外,迭代器也提供了数据遍历的接口,了解迭代器有助于我们更好地进行数据处理。原创 2022-02-26 23:02:37 · 247 阅读 · 0 评论 -
系统学习 TypeScript(四)——变量声明的初步学习
认识了 TypeScript 中的基础类型,接下来当然是变量声明的相关学习了,我在这里记录一下我学习过程中的一些总结。原创 2022-02-25 19:38:17 · 1540 阅读 · 0 评论 -
系统学习 TypeScript(三)——基础类型
类型可控是 TypeScript 的一大特色,熟练掌握 TypeScript 的基础类型,就有了学好 TypeScript 的基础。原创 2022-02-24 20:16:47 · 289 阅读 · 0 评论 -
uni-app 模拟机调试环境搭建
最近接手了一份使用 uni-app 进行开发的工作,今天才有时间正式开始,在这里记录一下使用 HBuilderX 进行 uni-app 开发的调试环境搭建过程。原创 2022-02-23 18:38:37 · 3056 阅读 · 0 评论 -
系统学习 TypeScript(二)——开发流程和语法规则
我们已经知道了 TypeScript 是什么,以及为什么要用 TypeScript,今天,我们就来学习怎么初步使用它。原创 2022-02-22 19:14:02 · 650 阅读 · 0 评论 -
系统学习 TypeScript(一)——认识 TypeScript
TypeScript 可以编译出纯净、 简洁的 JavaScript 代码,并且可以运行在任何浏览器上、Node.js 环境中和任何支持 ECMAScript 3(或更高版本)的 JavaScript 引擎中。原创 2022-02-21 18:59:17 · 310 阅读 · 0 评论 -
DOM 精通了?请问 Node 和 Element 有何区别?
相信我们很多同学都经常会使用到 Node(节点)和 Element(节点)的概念,那么这两者到底有何区别,不知道有多少人能够答得上来这个问题?原创 2022-02-20 21:14:46 · 746 阅读 · 2 评论 -
DOM 节点的克隆和导入
在使用 JS 操作 DOM 节点的时候,我们常常会用到克隆(或导入)节点的操作,那到底有哪些方法可以实现节点克隆(或导入)的效果呢?原创 2022-02-19 21:40:20 · 1622 阅读 · 0 评论 -
Web_Components 系列(九)—— Shadow Host 的 CSS 选择器
-`:host` 范围最大,匹配所有的自定义元素实例;-`:host()` 只选择自身包含特定选择器的自定义元素;- `:host-context()` 选择拥有特定选择器父元素的自定义元素。原创 2022-02-16 20:14:32 · 1015 阅读 · 0 评论 -
今天踩了一个基础坑
打铁还需自身硬,别看别人的实现方式有多高大上,其实都是基础知识的一些合理组合使用的结果而已,只要你基础够好,那即使面对一段简简单单的代码也能玩出不一样的花样!原创 2022-02-14 18:14:47 · 308 阅读 · 0 评论 -
Web Components系列(三) —— 创建 Custom Elements
自定义元素分为两类:Autonomous custom elements(自主定制元素)和Customized built-in elements(自定义内置元素),这两者在使用上到底有什么区别?原创 2022-02-09 18:40:50 · 1047 阅读 · 0 评论 -
Web Components 系列(二)—— 关于 Custom Elements
Web Components 标准非常重要的一个特性是,它使开发者能够将 HTML 页面的功能封装为 custom elements(自定义标签),而往常,开发者不得不写一大堆冗长、深层嵌套的标签来实现同样的页面功能。原创 2022-02-08 22:23:44 · 897 阅读 · 0 评论 -
Web Components系列(一) —— 概述
既然组件化开发这么流行,又能给开发带来极大的便利,那么浏览器就当然有理由来原生支持组件化,Web Components 就应运而生,它的诞生使得浏览器有了原生支持组件化的能力。原创 2022-02-07 00:04:50 · 431 阅读 · 0 评论 -
JavaScript 数组常见操作 (二)
数组是 JavaScript 中常见数据类型之一,关于它的一些操作方法,我在这里做一下简单记录和总结。原创 2022-02-06 20:53:29 · 553 阅读 · 0 评论 -
JavaScript 数组常见操作(一)
数组是 JavaScript 中常见数据类型之一,关于它的一些操作方法,我在这里做一下简单记录和总结。原创 2022-02-05 22:19:15 · 646 阅读 · 0 评论 -
HTTP 缓存
我们使用 HTTP 缓存,通过复用缓存资源,减少了客户端等待时间和网络流量,同时也能缓解服务器端的压力。可以显著的提升我们网站和应用的性能。原创 2022-02-04 23:30:26 · 93 阅读 · 0 评论 -
精度丢失问题
背景BFF Client 使用的 npm 包 request-promise-native 请求微服务接口返回 ID 精度丢失1713166949059674112 => 1713166949059674000为什么会丢失?存储二进制时小数点的偏移量最大为52位,计算机存储的为二进制,而能存储的二进制为62位,超出就会有舍入操作,因此 JS 中能精准表示的最大整数是 Math.pow(2, 53),十进制即9007199254740992大于 9007199254740992 的可.原创 2022-02-03 23:37:36 · 1745 阅读 · 0 评论 -
再解 JavaScript 原型与原型链
JavaScript 原型与原型链虽然是一个老生常谈的话题,但依然困惑着很多人,今天我再来从另一个角度谈谈这个问题。原创 2022-02-02 23:08:17 · 613 阅读 · 1 评论 -
Promise 基本方法的简单实现
Promise 是前端面试和工作中极其常见的一个概念,关于它各种方法的手写实现也很有市场,今天在这里总结一下 Promise 基本方法的简单实现。原创 2022-02-01 23:37:45 · 655 阅读 · 0 评论 -
JavaScript 之 Proxy
Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。原创 2022-01-27 23:15:38 · 749 阅读 · 0 评论 -
JavaScript 基本数据类型转换
前言数据类型转换是我们在前端开发中经常遇到的场景,一般而言,在 JavaScript 中类型转换有三种情况:转换为数字(调用 Number(),parseInt(),parseFloat()方法)转换为字符串(调用.toString()或 String()方法)转换为布尔值(调用 Boolean()方法)需要注意的是:null、undefined 没有.toString() 方法。转换为数字Number(string) 方法Number() 可以把任意值转换成数字,如果要转换的目标对象.原创 2022-01-22 20:58:42 · 526 阅读 · 0 评论 -
认识 Express 的 res.send() 和 res.end()
在使用 Node.js 的服务端代码中,如果使用的是 Express 框架,那么对于一个请求,常常会有两种响应方式……原创 2022-01-21 12:17:02 · 2169 阅读 · 0 评论 -
你知道 ES6~ES12等叫法是怎么来的吗?
你知道 ES6~ES12等叫法是怎么来的吗?前言作为一名前端开发,学习 JavaScript 自是天经地义的事,但是,JavaScript 的发展历史是怎样的,恐怕有相当一部分人都不太了解。我们常常听别人说并且自己也会说 ES6、ES7……ES12,那么,这些叫法到底是怎么来的?今天,我们就来总结一下这些有关 JavaScript 的发展历程。通过阅读本文,你将了解以下知识:ECMA 是什么ECMAScript 是什么JavaScript 的由来ES5 ~ ES12 的意义关于.原创 2021-08-31 23:31:24 · 222 阅读 · 0 评论 -
SSR 技术概述
前言服务端渲染的概念这几年可以说是炒得火热,它不是一种新型的技术,而是互联网最开始时所使用的加载技术。那么到底是什么原因,使得人们愿意拭去历史的尘埃,让服务端渲染这一古老的概念重新绽放光芒呢?什么是服务端渲染?服务端渲染简称 SSR,全称是 Server Side Render,是指一种传统的渲染方式,就是在浏览器请求页面URL的时候,服务端将我们需要的HTML文本组装好,并返回给浏览器,这个HTML文本被浏览器解析之后,不需要经过 JavaScript 脚本的执行,即可直接构建出希望的 DOM .原创 2021-08-30 20:29:26 · 616 阅读 · 0 评论 -
你知道 JavaScript 中的 Arguments 对象都有哪些用途吗?
JavaScript 中 Arguments 对象的用途总结。前言相信我们很多人在代码开发的过程中都使用到过一个特殊的对象 —— Arguments 对象。在实际开发中,Arguments 对象非常有用。灵活使用 Arguments 对象,可以提升使用函数的灵活性,增强函数在抽象编程中的适应能力和纠错能力。那么 Arguments 对象到底该怎么用呢?今天我们就来总结一下。Arguments 的基本概念Arguments 是一个对应于传递给函数的参数的类数组对象。Arguments .原创 2021-08-29 23:49:25 · 167 阅读 · 0 评论 -
工具库用久了,你还会原生操作 Cookie 吗?
用得好了,工具库和框架确实是一大助力,但就怕我们会因此习惯了走捷径,而忘了自己的根本依靠是什么。前言前端技术的飞速发展,给从业人员不可避免地带来了“疲劳”感,我们常常会感叹学不动了。于是,为了给我们“减压”,各种工具库和框架们诞生了。对公司来说,通过工具库和框架的引入,一方面是约束了代码风格,提高了可维护性,最重要的是可以缩短开发周期,早日出成品。对个人来说,各种工具库和框架用起来简直不要太爽,再也不用哼哧哼哧地啃那些原生的操作方法了,既解放了脑力,又多出了摸鱼的时间,还不用考虑方法的准确性….原创 2021-08-28 20:44:08 · 71 阅读 · 0 评论 -
关于开发视图
什么是开发视图__开发视图__是逻辑视图的实现,它又叫实现视图,描述了在开发环境中软件的静态组织结构,主要侧重于软件模块的组织和管理。开发视图关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件。开发视图和逻辑视图之间可能存在一定的映射关系:比如逻辑层一般会映射到多个程序包等。它的大体架构如下图所示:大部分情况下,开发架构考虑的内部需求与以下几项因素有关:开发难度、软件管理、重用性和通用性及由工具集、编程语言所带来的限.原创 2021-08-26 20:08:36 · 3368 阅读 · 0 评论 -
正经人一辈子都用不到的 JavaScript 方法总结 (二)
前言现在有这样一个需求:用一个对象存储某学生的各科成绩,要求每次只能改变科目分数,不能再添加或者删除科目。分析一下,这个需求其实就是需要创建一个固定属性的对象,其属性不可增删,但属性值可更改。有些同学可能就这么开始了:首先,定义一个符合要求的对象:// 声明成绩存储对象let reportObj = {};// 给成绩存储对象添加科目,并设置科目属性不可增删,但科目成绩可修改Object.defineProperties(reportObj, { ChineseMark: {.原创 2021-08-25 21:43:26 · 82 阅读 · 0 评论 -
正经人一辈子都用不到的 JavaScript 方法总结 (一)
前言假如有这样一个需求:要求将给定的一个文件路径 D:\bianchengsanmei\blogs\categories\JavaScript 在页面展示出来。最基本的实现方法可能是下面这个:<body> <div id = "container"></div></body>const filePath = "D:\bianchengsanmei\blogs\categories\JavaScript";document.querySe.原创 2021-08-24 21:35:56 · 523 阅读 · 4 评论 -
判断是否为数组的 JavaScript 方法总结
前言我们在日常开发中,常常有判断某值类型需求,今天我们总结一下常见的几种用来判断是否为数组的 JavaScript 方法。Array.isArrayArray.isArray() 是ES5新增的方法,用于确定传递的值是否是一个数组,如果是数组,则返回 true,否则返回 false。let arr = [];console.log(Array.isArray(arr)); // true下面的函数调用都返回 true:Array.isArray([]);Array.isArray([1.原创 2021-08-22 23:34:59 · 2170 阅读 · 0 评论 -
几种常用设计模式的简单示例
前言模式是在某一背景下某个问题的一种解决方案。设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。为了保证代码的可靠性、提高代码的复用率、使代码更容易被维护和阅读,我们需要了解并合理使用设计模式。日常开发中,一些特定的场景下你的处理方法可能并不是很理想,往往这时借助一些设计模式可以让你优雅而高效的实现这些逻辑,下面就介绍一些虽然不是最全的但一定是最常用的设计模式。单例模式:**定义:**一个类只返回一个实例,一旦创建再次调用就直接返回。.原创 2021-08-21 23:21:38 · 231 阅读 · 0 评论 -
缓存函数的简单使用
前言缓存是一种重要的程序优化手段,一般采用以空间换时间的措施来提高程序性能,常用的缓存方法有浏览器缓存、HTTP 缓存等。场景假设有这样一个简单场景:后台返给前端一组数据做展示,考虑到页面性能问题,前端需要分页来显示。我们就这个场景需求来做一下代码实现。实现一非常常规的实现方式:// 假设后台返回的数据是一个数组,存在 data 中function getPagerData(pageNumber, pageSize) { return data.slice(pageSize * (.原创 2021-08-20 23:27:18 · 178 阅读 · 0 评论 -
有同学问我:Fetch 和 Ajax 有什么区别?
江山代有人才出,各领风骚数百年。前言Hello,大家好,我是编程三昧的作者隐逸王,小小前端一枚。自昨天发了《还在死磕 Ajax?那可就 out 了!》一文后,收到了一些大家的一些评论,评论都很走心,也很有深度。说实话,虽然我在尽可能努力地回复大家的问题,但还是避免不了对其中一些概念理解的模棱两可的情况,有幸得到同仁们的指点,比如:感谢各位的不吝赐教,让我在成长的道路上又前进了几分。现在总结一下,评论区涉及到的主要问题如下:Fetch 和 Axios/Ajax 是什么关系Fetch .原创 2021-08-18 23:06:57 · 552 阅读 · 4 评论 -
还在死磕 Ajax?那可就 out 了!
江山代有人才出,各领风骚数百年。前言想当年面试时,AJAX 基本是必考题,像什么“异步调用、高性能”等是必答的。那时的 AJAX 是真的火,前端就没有不用 AJAX 的。然而,古语云“人无百日好,花无百日红”,又云“江山代有人才出,各领风骚数百年”,对于 AJAX,当然也不例外。这不,在最近这两年,我们明显可以发现很多新生框架中都有了 Fetch 的影子,而它的易用性和稳定性也是得到了反复验证的。Fetch 的概念Fetch 提供了对 Request 和 Response (以及其他与网络.原创 2021-08-17 21:02:35 · 88 阅读 · 0 评论 -
你知道关闭页面时怎么向后台发送消息吗?
需求这两天碰到一个需求:在用户刷新页面或者关闭页面的时候,前端要给后台发一条请求,释放该页面的授权占用。分析了一下,这不就是在页面卸载时发请求嘛,三下五除二就实现一版:window.addEventListener("beforeunload", () => {let oReq = new XMLHttpRequest();oReq.open("POST", "http://127.0.0.1:1991/loginout");oReq.send(JSON.stringify({name:.原创 2021-08-16 21:21:21 · 421 阅读 · 0 评论 -
浏览器数据库 IndexedDB(一) 概述
IndexedDB 就是浏览器提供的本地数据库,它可以被网页脚本创建和操作。背景随着浏览器的功能不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少从服务器获取数据,直接从本地获取数据。现有的浏览器数据储存方案,都不适合储存大量数据:Cookie 的大小不超过4KB,且每次请求都会发送回服务器;LocalStorage 在 2.5MB 到 10MB 之间(各家浏览器不同),而且不提供搜索功能,不能建立自定义的索引。所以,需要一种新的解决方案,这就是 IndexedDB 诞生的背.转载 2021-08-15 21:13:54 · 350 阅读 · 0 评论 -
【前端 · 面试 】JavaScript 之你不一定会的基础题(二)
最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正、交流。争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火。前言在上一篇文章【前端 · 面试 】JavaScript 之你不一定会的基础题(一)中,有同学产生了这样一个疑惑:为什么 click 事件的监听函数中,this.id 和 event.target.id 的输出值是不一样的?今天我们就来扒一扒这其中的原理。题目有如下的 HTML 文档结构:<div id="parent"&.原创 2021-08-14 12:23:04 · 127 阅读 · 1 评论