javascript技巧

微信小程序实现授权登录之获取用户信息

2022-05-19
本文实例为大家分享了微信小程序实现获取用户信息的具体代码,供大家参考,具体内容如下 小程序登录 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. 登录流程时序 效果展示: 功能实现: 新建一个login页面 login.js: wx.getUserProfile用于获取用户信息 wx.getStorageSync()用于获取缓存,进入小程序时调用 wx.setStorageSync()用于保存缓存,保存登录信息,下次进入小程序自动登录 Page(

钉钉小程序web-view内嵌H5页面并实现通信

2022-05-19
目录 前言 1.引入页面 2.在H5页面向钉钉发送消息 3.在钉钉页面向H5发送消息,继而实现双向通信 4.注意 内容调试方式 5.附双向通信全部代码 前言 今天探讨个不太常见的需求,公司需要在钉钉小程序内进行文件的上传,意图打造一个小型云盘,考虑到钉钉的上传大小等有诸多限制,以及数据的安全性,决定在钉钉内使用web-view嵌套H5上传页面,并且在完成上传动作后,需要返回小程序,并执行其他操作. 1.引入页面 在管理端新建页面,同时在钉钉页面使用web-view引入,需要后端配合传入合适的to

微信小程序实现下拉筛选功能

2022-05-19
最近开发应项目需求实现一个类似与贝壳找房里面的下拉筛选功能,在这里分享给有同样需求的大家,互相学习学习 这是主要功能实现,我把它封装成了组件,在对应的地方使用,就可以实现贝壳找房相同的效果 好了,废话不多说,直接上代码吧 wxml: <!--筛选栏--> <view class="cxj-contents">   <view class="cxj-menu">     <view class="flex-view{

微信小程序实现登录页面

2022-05-19
本文实例为大家分享了微信小程序实现登录页面的具体代码,供大家参考,具体内容如下 实现在进入微信小程序首页前的登录验证页面,这里有两种方法,但其实原理都是一样的. 1. 在首页中加入一个弹窗作为登录窗口,效果如下图: (1)index.wxml 登录窗口代码如下: <view class="modal-mask" bindtap="hideModal" catchtouchmove="preventTouchMove" wx:if="

JavaScript引用赋值与传值赋值总结

2022-05-19
目录 前言 基本数据类型 复合数据类型 前言 在JavaScript中基本数据类型都是传值赋值,复合数据类型都是引用赋值(传地址)也叫引用传址 基本数据类型的变量名和数据是直接存在"快速内存"(栈内存)中. 基本的数据类型有:undefined,boolean,number,string,null. 基本类型存放在栈区,访问是按值访问的,就是说你可以操作保存在变量中的实际的值. 而复合数据类型(对象和数组)的存储分两个部分: ①具体的数据存在“慢速内存”“堆内存”中: ②将变量名和数据

40行原生js代码实现前端简易路由

2022-05-18
目录 前言 路由到底是一个什么东西? 实现一个 hashRouter historyRouter memoryRouter 最后做个总结 前言 在使用Vue或者是React 的路由的时候,不是很清楚他们的思路,导致在理解这些思想上出现了很多问题,于是自己实现了一个简易的原生js实现的前端路由,并整理了一下前端会遇到的集中路由模式和区别, 来帮助学习路由 路由到底是一个什么东西? 路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动.路由发生在OSI网络参考模型中的第三层即网

JS实现数组随机排序的三种方法详解

2022-05-18
目录 1.利用数组方法sort实现随机排序 2.洗牌算法实现随机排序 3.洗牌算法深入分析 全部代码 1.利用数组方法sort实现随机排序 实现随机排序方法还是很多的,用for循环是可以写的,用Lodash等三方js方法库也行.但个人以为使用sort比较方便,但是他又缺点,缺点就是不够那么的随机,我看过sort运行机制后,发现他竟然是利用一个比较器两两比较出来的. var arr = [1, 2, 3, 4, 5] arr.sort(function () { return Math.rando

一文详解如何根据后端返回的url下载json文件

2022-05-17
目录 需求场景描述 实现思路分析 完整的 demo 示例 总结 需求场景描述 有时候会遇到异步接口会返回一个 url 地址,然后前端需要根据这个 url 地址去下载文件资源的需求场景. 而这个 url 其实是一个静态资源地址,并非一个经过后端接口内部处理的接口地址. 所以当尝试像下面这样使用 a 标签去执行该 url 地址,会发现它是直接预览打开的一个 json 文件(也可能是一个txt,js等文件) <a href=" http://192.168.0.172:8888/file/pac

JavaScript实现淘宝网图片的局部放大功能

2022-05-15
本文实例为大家分享了JavaScript实现淘宝网图片的局部放大的具体代码,供大家参考,具体内容如下 要实现的效果如下: <!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <title>demo1</title>     <style type="text/css">         *{            

小程序开发调用微信支付以及微信回调地址配置

2022-05-15
目录 支付接口 签名工具类,以及时间戳方法 回调接口 首先观看微信提供的文档 https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1 清楚调用微信支付必须传递的参数 因为微信提供了小程序唤起微信支付的方法,后端只需要传递对应的参数给前端即可 首先在程序中配置申请的固定参数 wx.open.app_id=用户的appid wx.open.app_secret=这是做登陆用的 weixin.pay.part

TypeScript声明文件的语法与场景详解

2022-05-14
目录 简介 语法 内容 模块化 模块语法 三斜线指令 reference amd-module 场景 1. 在内部项目中给内部项目写声明文件 2. 给第三方包写声明文件 全局变量的第三方库 修改全局变量的模块的第三方库的声明 修改window ESM和CommonJS UMD 模块插件 总结 简介 声明文件是以.d.ts为后缀的文件,开发者在声明文件中编写类型声明,TypeScript根据声明文件的内容进行类型检查.(注意同目录下最好不要有同名的.ts文件和.d.ts,例如lib.ts和lib.

Javascript数据结构之栈和队列详解

2022-05-14
目录 前言 栈(stack) 栈实现 解决实际问题 栈的另外应用 简单队列(Queue) 队列实现 队列应用 - 树的广度优先搜索(breadth-first search,BFS) 优先队列 优先队列实现 线性数据结构实现优先队列 Heap(堆)数据结构实现优先队列 代码实现一个二叉堆 小顶堆在 React Scheduler 事务调度的包应用 最后 前言 我们实际开发中,比较熟悉的数据结构是数组.一般情况下够用了.但如果遇到复杂的问题,数组就捉襟见肘了.在解决一个复杂的实际问题的时候,选择一

一篇文中告诉你JS中的&quot;值传递&quot;和&quot;引用传递&quot;

2022-05-11
目录 前言 初步了解堆栈 堆栈和类型的关系 特点 变量赋值 参数传递 小结 面试题 两者的区别就是: 总结 前言 现代的前端开发,不再是刀耕火种的 JQ 时代,而是 MVVM ,组件化,工程化,承载着日益复杂的业务逻辑.内存消耗和性能问题,成为当代开发者必须要考虑的问题. 本文从堆栈内存讲起,让大家理解JS中变量的内存使用以及变动情况 . 初步了解堆栈 先初步了解JS中的堆和栈,内存空间分为 堆和栈 两个区域,代码运行时,解析器会先判断变量类型,根据变量类型,将变量放到不同的内存空间中(堆和栈)

JavaScript中Promise的使用方法实例

2022-05-11
目录 前言 Promise简介 什么是回调地狱? Promise的特点 创建Promise实例 then方法 resolve 和 reject 的参数传递 then()链式调用 then()的返回值 catch方法 finally方法 Promise的方法 Promise.resolve() Promise.reject() Promise.all() Promise.allSettled() Promise.race() async 和 await async函数函数 await 异步函数的错

基于JS制作一个简单的网页版地图

2022-05-11
目录 前言 一.申请地图的AK密钥 二.主要代码分析 三.全部代码 四.结果展示 前言 以前做了一个安卓版的地图应用,现在突然想做一个简单的网页版地图.这个简单的网页版地图能根据城市名进行位置查询(有个城市列表的小控件,支持城市列表选择),还能根据经纬度进行位置查询.当你进行城市搜索时,或者经纬度查询城市时,该小控件也能自由地切换到目标城市. 一.申请地图的AK密钥 1.首先找到一个地图开放平台,这里以百度地图开放平台为例,步骤如下:进入百度地图开放平台,拉到最底下,进行登录注册,然后进入应用管

详解JavaScript的Symbol类型、隐藏属性、全局注册表

2022-05-11
目录 Symbol类型的使用 Symbol简介 Symbol类型的描述 Symbol不会隐式转字符串 Symbol类似作为对象的属性键 创建Symbol键 for…in中被跳过 隐藏自定义属性 Symbol全局注册表 系统Symbol 总结 Symbol类型的使用 在前文<JavaScript的8种数据类型>中,我们已经简单的介绍过了JavaScript的Symbol类型,下面对其使用方法和使用场景做一个简单的介绍. Symbol简介 Symbol类型是JavaScript中的一种特殊的类型,

uniapp实现微信小程序的电子签名效果(附demo)

2022-05-10
目录 1.标签和样式 2.横屏切换 3.绘图 3.1.初始化数据会吧? 3.2.触摸开始时获取起点,会吧? 3.3.触摸移动获取路径点,会吧? 3.4.触摸结束,将未绘制的点清空防止对后续路径产生干扰,简单吧? 3.5.绘制笔迹,没得问题吧? 4.扫尾处理 画布可以做很多事情,比如可以绘图,也可以做海报.在这里只是想拿它来的实现亲笔签名,开启不一样的亲笔签名姿势. 开发框架:uniapp开发语言:vue2展示平台:微信小程序(实际可以兼容多个平台) 标签和样式没什么好说的,这里绘制了简单的页面,

JavaScript中reduce()的用法实例

2022-05-10
前言 过去有很长一段时间,我一直很难理解 reduce() 这个方法的具体用法,平时也很少用到它.事实上,如果你能真正了解它的话,其实在很多地方我们都可以用得上,那么今天我们就来简单聊聊JS中 reduce() 的用法. 一.语法 arr.reduce(function(prev,cur,index,arr){ ... }, init); 其中, arr 表示原数组: prev 表示上一次调用回调时的返回值,或者初始值 init; cur 表示当前正在处理的数组元素: index 表示当前正在处

JS实现深拷贝和浅拷贝的方式详解

2022-05-10
目录 一. 基本类型数据拷贝 二. 引用类型数据拷贝 1.浅拷贝 2.深拷贝 说道数据拷贝就离不开数据类型,在JS中数据类型分为基本类型和引用类型 基本类型: number, boolean,string,symbol,bigint,undefined,null 引用类型: object 以及一些标准内置对象 Array.RegExp.String.Map.Set.. 一. 基本类型数据拷贝 基本类型数据都是值类型,存储在栈内存中,每次赋值都是一次复制的过程 var a = 12; var b

JavaScript实现拖拽排序的方法详解

2022-05-10
目录 实现原理概述 代码实现 完整代码实现 可拖拽排序的菜单效果大家想必都很熟悉,本次我们通过一个可拖拽排序的九宫格案例来演示其实现原理. 先看一下完成效果: 实现原理概述 拖拽原理 当鼠标在[可拖拽小方块](以下简称砖头)身上按下时,开始监听鼠标移动事件 鼠标事件移动到什么位置,砖头就跟到什么位置 鼠标抬起时,取消鼠标移动事件的监听 排序原理 提前定义好9大坑位的位置(相对外层盒子的left和top) 将9大砖头丢入一个数组,以便后期通过splice方法随意安插和更改砖头的位置 当拖动某块砖头