网站建设

如何写出优雅的JS 代码

目录 变量 使用有意义和可发音的变量名 对同一类型的变量使用相同的词汇 使用可搜索的名字 使用解释性变量 避免费脑的猜测 无需添加不必要的上下文 使用默认参数代替逻辑或(与...

详解TypeScript2.0标记联合类型

目录 使用标记的联合类型构建付款方式 使用标记联合类型构建 Redux 操作 never 类型 永不返回的函数 不可能有该类型的变量 never 和 void 之间的区别 函数声明的类型推断 使用标记的联合...

JavaScript把局部变量变成全局变量的方法

首先我们要知道函数的自调用 函数的自调用——自调用函数 一次性的函数——声明的同时,直接调用了 例如: (function () { console.log("函数");})(); 我们会看到浏览器直接打印 函数 两个字...

如何用JS WebSocket实现简单聊天

目录 短轮询(Polling) 长轮询(Long-Polling) WebSocket 通信原理 实现简单单聊 心跳保活 总结 短轮询(Polling) 短轮询的实现思路就是浏览器端每隔几秒钟向服务器端发送 HTTP 请求,服务...

JavaScript为内置对象添加原型方法实现

对象调用方法的顺序: 实例中的方法如果没有,去创建该实例对象的构造函数的原型对象中找 我们能为系统的对象的原【转自:荷兰服务器 】型中添加方法,其实也就是相当于在改变源...

详解JS中的reduce fold unfold用法

目录 fold(reduce) 使用for...of 使用while循环 更像fold的实现 unfold 数组实现 生成器实现 unfold实现 总结 fold(reduce) 说说reduce吧, 很喜欢这个函数,节省了不少代码量,而且有一些声明式...

探究JavaScript原型数据共享与方法共享实现

数据共享 什么样子的数据是需要写在原型中 需要共享的数据就可以写原型中 原型的作用之一:数据共享 属性需要共享,方法也需要共享: 不需要共享的数据写在构造函数中 需要共享的...

原生js实现表单的正则验证(验证通过后才可提交

实现了如下功能: 1.用户名:onfouc显示msg规则;onkeyup计算字符,其中中文为两个字符;onblur,验证是否通过 2.邮箱:onblur 正则匹配,正则是根据自己的需求写的,可以根据个人需求更...

JS异步代码单元测试之神奇的Promise

目录 前言 promise 的链式调用 MDN 的错误 链式的默认处理 简写 async await 前言 写这篇文章的起因是在写单元测试时,做形如下测试时 new Promise((resolve, reject) = reject(1)).then().catch(err = { con...

JavaScript伪数组和数组的使用与区别

伪数组和数组 在JavaScript中,除了5种原始数据类型之外,其他所有的都是对象,包括函数(Function)。 对象与数组的关系 在说区别之前,需要先提到另外一个知识,就是 JavaScript 的原型...

浅谈TypeScript3.7中值得注意的3个新特性

目录 前言 Optional Chaining Nullish Coalescing Uncalled Function Checks 其他 前言 距typescript 3.7正式发布已经有一段时间了,这段时间正在对手上的项目进行typescript的迁移工作,所以会特别留意每一...

详解TypeScript映射类型和更好的字面量类型推断

目录 概述 使用映射类型构建 Object.freeze() 映射类型的语法更直观解释 更多映射类型的示例 映射类型的实际用例 更好的字面量类型推断 更好的 const 变量推断 更好的只读属性推断 推断...

微信小程序+ECharts实现动态刷新的过程记录

前言 最近遇到了一个需求,就是要在小程序中实时刷新图表,最开始选择的是wx-chart,然后发现不能满足我的需求,最后选择了ECharts,也踩了一些坑,通过在网上收集资料,终于弄出来...

详解JS ES6编码规范

目录 1、块级作用域 1.1、let取代var 1.2、全局常量和线程安全 2、字符串 3、解构赋值 4、对象 5、数组 6、函数 7、Map结构 8、Class 9、模块 10、ESLint 1、块级作用域 1.1、let取代var ES6 提出了...

如何用threejs实现实时多边形折射

目录 前言 步骤1:设定和正面折射 步骤2:反射和菲涅耳方程 步骤3:多边折射 局限性 前言 在本教程中,您将学习如何使用Three.js在三个步骤中使对象看起来像玻璃。 渲染3D对象时,无...

详解JS WebSocket断开原因和心跳机制

1、断开原因 WebSocket断开的原因有很多,最好在WebSocket断开时,将错误打印出来。 ws.onclose = function (e) { console.log('websocket 断开: ' + e.code + ' ' + e.reason + ' ' + e.wasClean) console.log(e)} 错误状态...

详解JS浏览器事件模型

目录 什么是事件 一个简单的例子 如何绑定事件 框架中的事件 事件对象 事件传播 事件代理 总结 什么是事件 我想你很可能听说过事件驱动, 但是事件驱动到底是什么?为什么说浏览器...

教你如何写出可维护的JS代码

目录 什么是可维护代码 代码约定 1.可读性 2.变量和函数的命名 3.变量类型透明 松散耦合 1.解耦html/JavaScript 2.解耦css/JavaScript 3.解耦应用逻辑/事件处理程序 编程实践 1.尊重对象所有权...

JS鲜为人知的问题之[] == ![]结果为true、而{} == !

console.log( [] == ![] ) // trueconsole.log( {} == !{} ) // false 在比较字符串、数值和布尔值的相等性时,问题还比较简单。但在涉及到对象的比较时,问题就变得复杂了。最早的ECMAScript中的相等和...

浅谈JavaScript构造树形结构的一种高效算法

目录 引言 思路 建立 ID-数组索引映射关系 构造树形结构 原理 总结 引言 我们经常会碰到树形数据结构,比如组织层级、省市县或者动植物分类等等数据。下面是一个树形结构的例子:...

promise封装wx.request的方法

上篇文章给大家介绍了使用Promise封装小程序wx.request的实现方法,本文重点给大家介绍promise封装wx.request的方法,具体内容如下所示: 为什么要封装wx.request? 因为我们请求接口时,有时...

JavaScript初学者容易犯的几个错误

目录 前言 混淆 undefined 和 null 混淆数字相加和字符串拼接 return 语句换行问题 用 return 跳出 forEach 循环 总结 前言 抛开 JavaScript 语言设计层面的问题不说,毕竟它是 Brendan Eich 当年用短...

详解JavaScript原始数据类型Symbol

目录 简介 描述信息 命名冲突 私有属性 总结 简介 创建symbol变量最简单的方法是用Symbol()函数。sysmbol变量有两点比较特别: 1.它可以作为对象属性名。只有字符串和 symbol 类型才能用作...

微信小程序用户授权最佳实践指南

前言 开发微信小程序中,经常会用到获取一些用户权限的页面,比如你要登录,就要获取个人信息、你要做人脸识别,就要获取相机权限、你要做位置地图功能、就要获取用户的位置权...

微信小程序静默登录和维护自定义登录态详解

目录 1.背景 2.什么是静默登录? 3.如何维护自定义登录态 4.静默登录整体流程 4.1app.onLaunch中发起登录 4.2处理小程序不支持异步阻塞 4.2.1粗糙的方案 4.2.2优雅的方式 4.3 整体流程图 5.写在...

浅谈JavaScript工具链不完全指南

目录 概述 静态类型检查 代码风格检查(Linter) 包管理器 模块加载器 打包工具 任务管理工具(Task Runner) 转译器 构建工具 调试工具 Node 进程管理器 项目脚手架 概述 在 JavaScript 语言...

微信小程序学习之wxs使用教程

什么是wxs wxs(WeiXin Script)是小程序的一套脚本语言, 结合WXML, 可以构建出页面结构. wxs标签 wxs module="utils" src="../../wxs/test.wxs"/wxs module属性: 当前标签的模块名, 建议该值唯一, 若存在同名的...

基于 antd pro 的短信验证码登录功能(流程分析)

目录 概要 整体流程 前端 页面代码 请求验证码和登录的 service (src/services/login.js) 处理登录的 model (src/models/login.js) 后端 短信验证码的处理 登录验证 FAQ antd 版本问题 可以优化的点 概要...

JS如何实现一个单文件组件

目录 概述 单文件组件 基本概念 简单的loader 解析组件内容 注册组件 获取脚本内容 DataURI和ObjectURI 动态导入 实现 行为层 兼容性问题及其他 概述 前端开发人员只要了解过vue.js框架可能...

浅谈JS的二进制家族

目录 概述 Blob Blob实战 Blob下载文件 Blob图片本地显示 Blob文件分片上传 本地读取文件内容 ArrayBuffer 通过ArrayBuffer的格式读取本地数据 通过ArrayBuffer的格式读取Ajax请求数据 通过TypeArray对...

如何用JavaScipt测网速

目录 前言 前端判断网速的原理总结 1.通过img加载或者发起Ajax请求计算网速 2.window.navigator.connection.downlink网速查询 3. 一般来说,通过请求文件测算网速 前端判断网速的方法及其优缺点...

微信小程序实现录音Record功能

本文实例为大家分享了微信小程序实现录音Record功能的具体代码,供大家参考,具体内容如下 布局 !--pages/record/record.wxml--view button class="tui-menu-list" bindtap="startRecordAac" type="primary"录音开...

微信小程序实现拍照和相册选取图片

本文实例为大家分享了微信小程序实现拍照和相册选取图片的具体代码,供大家参考,具体内容如下 布局: !--pages/camera/camera.wxml--view class="tui-menu-list" id="view1" style="display:flex;flex-direc...

JavaScript之不可靠的undefined

undefined在 JavaScript 中,假设我们想判断一个是否是undefined,那么我们通常会这样写: if(a === undefined){//code} 但是,JavaScript 中的undefined并不可靠,我们试着写这样一个函数: function test(a...

JavaScript如何删除对象的某个属性详析

1、delete delete是删除对象的属性没有任何剩菜,剩下的唯一真正的方法,但它的工作比其“替代”设置慢100倍 object[key] = undefined var myObject = { "ircEvent": "PRIVMSG", "method": "newURI", "regex": "^h...

原生Js 实现的简单无缝滚动轮播图的示例代码

简单无缝滚动轮播图存在很多漏洞,就是后期增加图片时会很不方便,需要改动的地方也很多,耦合性也很强,只适用于一部分程序,所以我们可以通过改动图片结构和计算折算点的方...

原生Js实现的画廊功能

目录 第一种 第二种 原生Js实现画廊功能,点击图片,在下方出现相应放大图片。给a标签绑定onclick点击事件。这里上方的小图和下方将要展示大图,都是同一张图片,只是上下两个im...

JavaScript判断文件是否存在的实例代码

一、业务场景 最近一直在做和文件上传和下载相关的开发,在涉及到下载的时候,我使用如下的方法进行下载 //获取或者赋值一个下载路径 let downUrl; //采用如下的方式可以直接下载文...

字节跳动面试之如何用JS实现Ajax并发请求控制

前言 讲真的,最近也很迷茫。关于技术、关于生活吧。也找了很多在大厂的朋友去聊,想需求一些后期发展的思路。这其中也聊到了面试,聊到了招聘中会给面试者出的一些题目。我正...

JavaScript原始值与包装对象的详细介绍

目录 前言 正文 原始类型 (Primitive types) 原始值 (Primitive values) 包装对象 (Wrapper objects) 对象 (Object) 构造函数 (Constructor) 普通函数 (Function) 原始值不是对象 (Primitive not Object) 没有属性和方...

原生js编写贪吃蛇小游戏

本文实例为大家分享了js编写贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 刚学完js模仿着教程,把自己写的js原生小程序。 HTML部分 !DOCTYPE htmlhtml lang="en"head meta charset="UTF-8"...

JS使用reduce()方法处理树形结构数据

目录 定义 语法 实例 1. 没有传递初始值init 2. 传递初始值的情况下 3. 数组去重 4. 利用 reduce 对数组中的 Object 对象进行分组及合并 5. 利用 reduce 处理菜单后端返回的菜单结构 定义 redu...

JavaScript继承的三种方法实例

继承 1. 什么是继承 继承: 首先继承是一种关系,类(class)与类之间的关系,JS中没有类,但是可以通过构造函数模拟类,然后【来源:美国站群服务器 请说明出处】通过原型来实现继承。...

微信小程序实现简单Tab切换效果

本文实例为大家分享了微信小程序实现Tab切换效果的具体代码,供大家参考,具体内容如下 使用步骤 代码如下(示例): 定义一个状态status data: { status: 0, }, 代码如下(示例): 在点...

JavaScript中实现new的两种方式引发的探究

前言 当你 new 一个构造函数时发生了什么? “众所周知”的三步: 创建一个空对象,将它的引用赋给 this,继承函数的原型;通过 this 将属性和方法添加至这个对象;最后返回 this 指向...

一篇文章弄懂javascript内存泄漏

1、什么是内存泄漏 在了解什么是内存泄漏之前, 我们应该要对内存是什么有个概念, 随机存取存储器(英语:Random Access Memory,缩写:RAM)是与 CPU 直接交换数据的内部存储器。它可以随...

js如何构造elementUI树状菜单的数据结构详解

背景说明 elementUI中自带树状菜单,就是数据结构有点复杂,偏向json风格。 数据库中菜单数据是二维表格,通过parentPk定义上下级,是list型。 需要把list转换成tree的结构。 elementUI树状菜...

JavaScript 如何实现同源通信

目录 一、Broadcast Channel API 简介 二、Broadcast Channel API 应用场景 2.1 实现同源页面间数据同步 2.2 在其它 Tab 页面中监测用户操作 三、Broadcast Channel API vs postMessage API 四、总结 五、参考资...

JavaScript 如何在线解压 ZIP 文件

目录 一、ZIP 格式简介 二、浏览器解压方案 2.1 定义工具类 2.2 在线解压 ZIP 文件 三、服务器解压方案 3.1 根据文件名解压指定 ZIP 文件 3.2 在线解压 ZIP 文件 3.3 预览 ZIP 文件中指定路径的...

JavaScript获取网页的宽高及如何兼容详解

很多场景下会需要获取当前网页的宽高来达到一些效果,但是获取网页的宽高这里面还是有一点(hen duo)坑的,这里我进行了总结和详解,若有补充欢迎评论补充~ 方式一:window.inner...