
JavaScript、ECMAScript 6
文章平均质量分 50
本专栏旨在为广大前端开发者提供一个深入学习、掌握并应用现代JavaScript及其最新标准的平台。
芭拉拉小魔仙
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
解决苹果手机通过getUserMedia唤起摄像头出现黑屏问题
在iOS设备上,用户必须明确授权网站或应用访问摄像头。如果用户在首次请求时没有授权,或者之后更改了权限设置,那么摄像头将无法正常工作。API 要求在安全的上下文中使用,即你的网页必须通过HTTPS协议提供。如果你的网站还在使用HTTP,那么你需要将其升级到HTTPS。虽然大多数现代浏览器(包括Safari)都支持这一API,但最好还是在。之前,用户已经授权了摄像头访问权限。首先,确保你正在使用的浏览器支持。上检查最新的兼容性信息。原创 2024-09-06 17:19:00 · 1016 阅读 · 0 评论 -
navigator.mediaDevices.getUserMedia检查用户的摄像头是否可用,虚拟摄像头问题
API 提供了这一功能,它允许你请求访问用户的媒体设备,如摄像头和麦克风。虽然这个API本身主要用于获取媒体流,但你可以通过尝试获取摄像头流来间接检查摄像头是否可用。通过stream.getVideoTracks(),获取当前设备,发现是虚拟摄像头的问题。如果成功,我们会在控制台中打印一条消息,并可以将视频流绑定到一个。在Web开发中,检查用户的摄像头是否可用是一个常见的需求,尤其是在需要视频聊天或录制视频的应用程序中。如果失败,我们会捕获错误并根据错误的类型显示相应的消息给用户。原创 2024-09-06 11:23:34 · 796 阅读 · 0 评论 -
ES6 reduce方法详解:示例、应用场景与实用技巧
在JavaScript中,reduce方法是一个非常强大的数组方法,它允许你将数组中的元素归并(reduce)为单个值。reduce方法执行一个由你提供的reducer函数(归并函数),将其结果汇总为单一的返回值。原创 2024-09-03 11:07:48 · 1984 阅读 · 0 评论 -
ES6中新增的Set方法详解
在ES6(ECMAScript 2015)中,Set是一种新的数据结构,它提供了一种存储任何类型唯一值的方式,无论是原始值还是对象引用。本文将详细介绍Set的特点、解决的问题、使用场景以及使用方法。原创 2024-08-30 08:52:01 · 511 阅读 · 0 评论 -
Promise:JavaScript 中的异步编程解决方案
在JavaScript中,Promise是一种用于异步编程的对象,它提供了一种更优雅的方式来处理异步操作的成功和失败,相比传统的回调函数方法,Promise让代码更加简洁、易读、易维护。本文将详细介绍Promise的特点、用法以及它解决的问题。原创 2024-08-29 17:54:20 · 501 阅读 · 0 评论 -
在URL链接中指定浏览器跳转到PDF文件的指定页码
在Web开发中,经常需要处理各种类型的文件交互,包括PDF文件。有时,我们可能希望当用户点击一个链接时,浏览器能够直接打开PDF文件并跳转到文件的特定页码。虽然HTML标准本身并不直接支持在URL中指定PDF的页码,但我们可以通过一些技巧和工具来实现这一功能。原创 2024-08-24 09:45:00 · 744 阅读 · 0 评论 -
深入理解 structuredClone:JavaScript 的深拷贝解决方案
是一个全局函数,用于创建对象的深拷贝。与浅拷贝不同,深拷贝会递归地复制对象的所有嵌套属性,确保原始对象和拷贝对象之间没有任何引用关系。原创 2024-08-21 14:31:58 · 962 阅读 · 0 评论 -
JavaScript 中的深拷贝新宠:structuredClone() 函数详解
在 JavaScript 中,处理对象拷贝时,我们经常会遇到浅拷贝(shallow copy)和深拷贝(deep copy)的概念。浅拷贝只复制对象的第一层属性,如果属性值是引用类型(如对象、数组等),则只复制引用而不复制对象本身,这可能会导致原始数据被意外修改。而深拷贝则递归地复制对象及其所有子属性,确保原始数据和拷贝数据完全独立。传统上,JavaScript 没有内置直接进行深拷贝的函数,开发者通常需要自己编写深拷贝函数或使用第三方库(如 lodash 的 _.cloneDeep())。原创 2024-08-21 14:12:58 · 1159 阅读 · 0 评论 -
【javascript】数据精度丢失问题
JavaScript中存在小数点精度丢失的问题是由于其使用的浮点数表示方式。JavaScript采用的是双精度浮点数表示法,也称为IEEE 754标准,它使用64位来表示一个数字,其中52位用于表示有效数字,而其他位用于表示符号、指数和特殊情况。由于使用有限的位数来表示无限的小数,JavaScript无法准确地表示某些小数。其中一个典型的示例是0.1,它在二进制中是一个无限循环的小数。当我们将0.1这样的小数转换为二进制进行存储时,存在近似表示的误差,因此在进行计算时会出现精度丢失的问题。原创 2024-06-28 16:03:49 · 1406 阅读 · 0 评论 -
【jquery】jquery使用Recorder.js实现录音并上传,调用阿里云接口语音转文字
1.点击拾音按钮开始录音,点击结束按钮结束录音并调取后台语音转文字接口。2.录音时长超过60s自动结束录音并调取后台语音转文字接口。阿里一句话识别语音数据时长不能超过60s。原创 2024-04-10 14:47:44 · 869 阅读 · 0 评论 -
网页播放rtsp视频解决方案(unity webplayer页面播放遮挡问题解决方案)
1.vlc activeX播放安装vlc-2.2.8.0.exe,勾选ActiveX插件,使用插件播放rtsp视频;在unity webplayer页面播放有遮挡问题,解决方案如下:<div id="video-box"> <iframe id='iframebar' src="about:blank" frameBorder=0 marginHeight=0 marginWidth=0 style="position:absolute;visibility:inherit;原创 2022-05-16 11:04:28 · 1097 阅读 · 0 评论 -
Phantomjs生成PDF遇到的问题
最近使用 Phantomjs 生成PDF,其中遇到一些问题,导致PDF生成失败,如出现空白文件或一页数据量太大,都是由于没有设置好格式导致。特别是分页问题,感觉资料很少,除了在 StackOverflow 上看到些许资料外,中文社区基本看不到,附上修改后的 rasterize.js 来做讲解:var page = require('webpage').create(), system = require('system'), address, output, size;if (system.arg原创 2022-05-16 10:40:44 · 982 阅读 · 1 评论 -
html 打印
横向打印<style media="print"> @page{ size: landscape; } </style>打印时表格线框显示不完全.table_2{border:1px solid #999;border-collapse: collapse} .table_2 td{border:1px solid #999;}在对象之后插入分页符page-break-after:always;..原创 2022-05-16 10:38:12 · 96 阅读 · 0 评论 -
线性结构与树形结构相互转换(ES6实现)
当树形结构的层级越来越深时,操作某一节点会变得越来越费劲,维护成本不断增加。所以线性结构与树形的相互转换变得异常重要!首先,我们约定树形结构如下:node = { id: number, // 数值 parentId: number, // 数值 name: string, children: [] || null, // 用数组的方式保存子节点,适合更多业务场景 }线性结构:list = [ { id: number, parentId: number, name转载 2021-08-06 17:33:07 · 454 阅读 · 0 评论 -
js常用工具类函数
/** * @function formatSeconds 格式化秒数,格式:HH:mm:ss * @param {int} duration 秒数 * @return {string} 格式化秒数,格式:HH:mm:ss */export const formatSeconds = (duration) => { if(!duration){ return 0; } let secondTime = parseInt(duration);// 秒原创 2021-01-06 16:39:18 · 139 阅读 · 0 评论 -
时间格式转换
/**时间格式转换 * var oldTime = new Date("2012/12/25 20:11:11"); var curTime = oldTime.format("yyyy-MM-dd hh:mm:ss"); */export const dateToString = (timeStr,fmt) => { if(!timeStr){ return; } let time; if(new Date(timeStr).toJSON原创 2020-10-21 17:06:21 · 1750 阅读 · 0 评论 -
iview timpicker 时间选择限制(时间线下一个时间不能早于上一个时间)
<TimePicker type="time" :disabled-hours="disabledHours(index)" :disabled-minutes="disabledMin(index)" :disabled-seconds="disabledSeconds(index)" placeholder="请选择时间" v-model="item.time" style="width: 300px"></TimePicker>//配送点到达原创 2020-06-16 17:45:00 · 797 阅读 · 1 评论 -
vue项目跨域请求
config/dev.env.js //开发环境配置const merge = require('webpack-merge')const prodEnv = require('./prod.env')module.exports = merge(prodEnv, { NODE_ENV: '"development"', API_ROOT:'"http://127.0.0.1:9092"'})config/index.jsconst path = require('path')原创 2020-06-09 13:40:46 · 195 阅读 · 0 评论 -
Vue项目使用百度地图经验总结
一、 引用npm install vue-baidu-map --saveindex.html<script src='http://api.map.baidu.com/api?v=3.0&ak='></script>初始化<div class="map-container" ref="bmap" id="bmap"></div>...原创 2020-05-07 15:38:05 · 537 阅读 · 0 评论 -
表单验证
const validatePass = (rule, value, callback) => { var noSpace = /\s/; if(value == "" || value == undefined){ callback(new Error('请输入密码')) }else if(noSpace.test(value)){ call...原创 2019-12-03 10:15:37 · 200 阅读 · 0 评论 -
iview 起始时间选择器、时间选择限制
1.起始截止时间约束<Form-item label="开始日期" prop="from"> <DatePicker v-model="searchForm.from" @on-change="onSearchStartTimeChange" :options="searchStartTimeOp...原创 2019-07-23 11:18:01 · 663 阅读 · 0 评论 -
导出excel文件
exportFile(){ if(this.list.length == 0){ this.$Message.warning("暂无数据,请查询数据!"); return; } let params = { deptName: this.sel.deptName, field: this.sel....原创 2019-07-15 11:04:27 · 193 阅读 · 0 评论