javascript技巧

详解微信小程序官方人脸核身认证

2021-06-02
小程序收集了下用户个人信息上传被打回来说: 你好,小程序页面功能涉及:采集用户生物特征(人脸照片或视频)及其他敏感信息,用于身份认识或识别, 为保障用户敏感隐私身份信息,平台暂不支持此功能.请去除相关功能后重新提交. 然后就去找度娘搜了下需要申请 wx.startFacialRecognitionVerify({}) https://api.weixin.qq.com/cgi-bin/token?appid=appid&secret=secret&grant_type=client_cre

详解ES9的新特性之异步遍历Async iteration

2021-06-02
异步遍历 在讲解异步遍历之前,我们先回想一下ES6中的同步遍历. 根据ES6的定义,iteration主要由三部分组成: Iterable 先看下Iterable的定义: interface Iterable { [Symbol.iterator]() : Iterator; } Iterable表示这个对象里面有可遍历的数据,并且需要实现一个可以生成Iterator的工厂方法. Iterator interface Iterator { next() : IteratorResult; } 可

如何将JavaScript将数组转为树形结构

2021-06-02
1.需求 后台给了一个这样的数据让咱前端去转换为树形结构(没有重复数据).不多说,先来看看给了一个怎样的数组数据,转换为怎样的树形结构. 服务器传过来的数组 const arr = [ [ {"deptId":"D019", "deptName":"销售部"}, {"deptId":"D019101", "deptName":"华北销售中心"} ]

浅谈JS的原型和原型链

2021-06-01
1.原型prototype javascript中所有函数都具有这个属性,所有具有prototype属性的对象都是一个函数.prototype的作用是向对象添加一个方法/属性. function persion(){} persion.prototype.name = "xiaoming" console.log(persion.prototype)//{name: "xiaoming", constructor: ƒ} 2.原型指针:__proto__ 如果将上面

浅谈JS三座大山之异步和单线程

2021-06-01
单线程 但是我们在开发中,遇到请求网络,或者定时任务的时候,如果等待网络请求结束或者定时任务结束的时候再去做其他事情,这样页面就会卡住,所以js有异步机制解决这个问题. 异步 异步的特点是不会阻塞后面的代码执行,当同步任务执行完毕之后,再执行异步任务.相对的,同步会阻止代码执行.异步任务的应用主要有网络请求和定时任务. 异步是通过callback的方式实现的,在callback里面执行异步执行的代码,但是有一些场景比如我们有三个网络请求abc需要依次执行,在a的回调里发起b请求,在b的回调里发起

关于js的事件循环机制剖析

2021-06-01
前言 众所周知, JavaScript是单线程这一核心,可是浏览器又能很好的处理异步请求,那么到底是为什么呢?其中的原理与事件循环机制大有关系. 在探索事件循环之前,我们得先了解浏览器执行线程~~ 浏览器的渲染进程是多线程的,浏览器每一个tab标签都代表一个独立的进程,其中浏览器内核属于浏览器多进程中的一种,主要负责页面渲染,脚本执行,事件处理等.其包含的线程有以下几种 GUI 渲染线程:负责渲染页面,解析 HTML,CSS 构成 DOM 树: JS 引擎线程:解释执行代码.用户输入和网络请求:

微信小程序使用同声传译实现语音识别功能

2021-06-01
我使用同声传译语音识别功能是为了实现微信小程序首页的语音搜索功能,如果你也是那么恭喜你,你可以ctrl+c.ctrl+v再改一改,如果你不是那么你也不要着急的走可以看完我的文章会对你有所帮助! 首先是在微信公众平台(也就是小程序的后台),在左侧菜单栏中的设置-->第三方设置下的插件管理-->添加-->搜索同声传译-->点击添加 接下来就是在代码中进行添加一些设置. 如果你是使用微信开发者工具进行开发小程序的话,需要在app.json文件中添加一下代码. // app.json {

js 可选链操作符的使用

2021-05-31
前言 可选链操作符(?.)允许读取位于链接对象链身处的属性的值,而不必明确验证链中的每个引用是否有效.不同之处在于,在引用为空(null或者undefined)的情况下不会引起错误,该表达式短路返回值是undefined.与函数调用一起使用时,如果给定的函数不存在,则返回undefined. 当尝试访问可能不存在的对象属性时,可选链操作符将会使表达式根更短.更简明.在探索一个对象的内容时,如果不能确定哪些属性必定存在,可选链操作符也是很有帮助的. 可选链操作符(?.) 语法 obj?.prop

使用php的mail()函数实现发送邮件功能

2021-05-31
利用PHP的mail函数发送邮件 mail()函数的作用:连接到邮件服务器,利用smtp协议,与该服务器交互并投邮件 注意: 1.mail函数不支持esmtp协议,即只能直投不能登录 2.由上条知,我们只能直投至最终的收件服务器地址,而该地址需要在php.ini中指定 此处以网易邮箱为例,先找到服务器地址: 再把该地址写到php.ini中,打开php.ini,找到mail function,将其中一个地址填进去,并开启发件人设置: 再重启apache,以管理员身份打开命令提示符: httpd -

js实现自动锁屏功能

2021-05-31
1.使用场景 有这么一个需求,开发了一套系统,当用户离开桌面或者一段时间不操作的话,需要把该系统所有打开页面锁定起来,就跟桌面锁屏一样,只能输入密码验证成功后,或者重新登录,才可以继续操作页面,如果刷新页面,也要保持锁定.就像下图一样.当然用户也可以手动触发锁屏.目的是防止他人随意操作系统的重要内容.那么该如何去实现呢? 5s锁屏效果如下: 2.思路 首先需要一个变量isLock表示页面是否锁定.由于多个页面需要共享这个数据,且刷新后依然能够获取到,所以我使用了localStorage储存在本地

小程序wx.getUserProfile接口的具体使用

2021-05-30
最近微信小程序对于审核小程序提出了带有wx.login.wx.getUserInfo接口的调整,并提出了一个新的接口供开发者调用 下图是对于新的接口的官方文档详情 点击前往官网查看更多详细信息 值得注意的是新的接口wx.getUserProfile,只能使用catchtap或者bindtap进行调用(ps:可以再wx.showmodel中使用),并不能再onload.onshow等位置直接调用,并且返回参数有所改变 下图是新的接口wx.getUserProfile返回的数据类型 // An hi

原生js实现简单贪吃蛇小游戏

2021-05-30
本文实例为大家分享了js实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 先上图 话不多说,代码奉上,喜欢的请留下你的小星星♥(ˆ◡ˆԅ) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial

替换json对象中的key最佳方案

2021-05-29
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率. 看到标题你可能会想,如此简单的问题值得去探究吗?如果我有一个json object,只需下面简单的几行代码就可以完成: var o

微信小程序基础教程之echart的使用

2021-05-29
前言 先看下最终实现的效果–自己做的小demo 首先到ECharts官网下载官网地址 根据上面的网址下载代码把ec-canvas文件拷贝下来放到你自己的项目中, 我放的是tool文件夹下面,你们随意引入的时候注意路径就行 2.使用 然后在你需要用的页面引入,在json中加入,这里要注意路径echart.json "usingComponents": { "tab":"../../component/tabs/tab", "ec-canv

javascript实现数组最大值和最小值的6种方法

2021-05-29
给定一个数组[1,8,5,4,3,9,2],编写一个算法,得到数组的最大值 9,和最小值 1. 1.通过prototype属性扩展min()函数和max()函数 算法1的思路是在自定义min()和max()函数中,通过循环由第一个值依次与后面的值作比较,动态更新最大值和最小值,从而找到结果. // 最小值 Array.prototype.min = function () { let min = this[0]; let len = this.length; for (let i = 1; i

JavaScript offset实现鼠标坐标获取和窗口内模块拖动

2021-05-28
offset offset 即偏移量,使用 offset 系列相关属性可以 动态的 获取该元素的位置(偏移).大小等,如: 元素距离带有定位父元素的位置 获取元素自身的大小(宽度高度) 注:返回的数值不带单位 offset 系列常用的属性包括:     element.offsetParent     返回作为该元素带有定位的父级元素,如果父级元素没有定位,则返回 body     注意,parentNode 和 offsetParent 还是有本质上的区别的:parentNode 返回的是直接

微信小程序使用canvas绘制钟表

2021-05-28
本文实例为大家分享了微信小程序使用canvas绘制钟表的具体代码,供大家参考,具体内容如下 模拟时钟 利用canvas绘制时钟,实现模拟时钟的功能,钟表时间与系统时间保持一致,刻度将24小时制转换为12小时制,需要分别绘图出中心圆.外层大圆.分针.时针.秒针. 效果图如下: 代码如下: index.wxml <canvas canvas-id="myCanvas" class="mycanvas"></canvas> index.wxss /

ThingJS粒子特效一键实现雨雪效果

2021-05-27
使用ThingJS可以快速编写粒子效果,比如:下雨.下雪(可以控制雨雪大小).喷水.火焰效果等,甚至可以通过对接第三方的数据,实时控制三维场景的效果(比如:对接天气接口). 1.粒子效果 ThingJS 提供 ParticleSystem 物体类来实现粒子效果.自己制作粒子效果需要图片处理.写代码.3D渲染, 是个很艰巨的任务,需要掌握大量 3D 算法知识,还要掌握 shader 语言.ThingJS封装了粒子效果的实现方法,减少了代码量和开发投入,更受3D开发初学者的欢迎,直接用query查询

JavaScript实现动态数字时钟

2021-05-26
本文实例为大家分享了JavaScript实现动态数字时钟的具体代码,供大家参考,具体内容如下 实现效果 代码实现 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> * { padding: 0; margin: 0; } #box { width

QT与javascript交互数据的实现

2021-05-26
一.数据从QT流向JS 1.QT调用JS的函数,JS通过形参获得QT的值 2.JS调用QT的函数,QT函数的返回值进入JS 二.数据从JS流向QT 1.JS调用QT的函数,QT通过形参获得JS的值 2.QT调用JS的函数,JS函数的返回值进入QT 1.QT向JS传递数组 基本类型可以直接传递,例如 int bool string double等 qt向js传递数组,需要把数组转成QJsonArray,再把QJsonArray转成QString, 这样js就会接收到一个基本类型string,而这个