JavaScript
援笔赋惊鸿
人生总是在转角处发现更多的风景
展开
-
JavaScript实现屏幕录像
20行代码,实现屏幕录像可以给任何网站、网页实现屏幕录像功能原创 2023-02-25 15:24:15 · 1237 阅读 · 1 评论 -
js常见算法及算法思想-分而治之
概念:分而治之算法可以分为三个部分。1、分解原问题为多个子问题(原问题的多个小实例);2、解决子问题,用返回解决子问题的方式的递归算法。递归算法的基本情形可以用来解决子问题;3、组合这些子问题的解决方式,得到原问题的解。...原创 2022-08-15 15:58:55 · 585 阅读 · 0 评论 -
js常见算法及算法思想-排序
1)冒泡排序比较所有相邻元素,如果第一个比第二个大就交换他们执行一次后可以保证最后一个数字是最大的重复执行 n-1 次,就可以完成排序2)选择排序找到数组中最小的值,选中它并放到第一位接着找到数组中第二小的值,选中它并放到第二位重复上述步骤执行 n-1 次3)插入排序从第二个数,开始往前比较如它大就往后排以此类推进行到最后一个数4)归并排序分:把数组劈成两半 在递归的对子数组进行分操作,直到分成一个个单独的数合:把两个树合并为有序数组,再对有序数组进行合并, 直到全部子数组合并为原创 2022-08-12 18:52:37 · 466 阅读 · 0 评论 -
JS生成UUID唯一标识方法
UUID的编码规则:1)1~8位采用系统时间,在系统时间上精确到毫秒级保证时间上的惟一性;2)9~16位采用底层的IP地址,在服务器集群中的惟一性;3)17~24位采用当前对象的HashCode值,在一个内部对象上的惟一性;4)25~32位采用调用方法的一个随机数,在一个对象内的毫秒级的惟一性。通过以上4种策略可以保证惟一性。在系统中需要用到随机数的地方都可以考虑采用UUID算法。...原创 2022-07-05 14:59:26 · 1997 阅读 · 0 评论 -
elementUI Upload实现自定义阿里云上传文件
2.封装上传方法upload_oss.js3.封装上传组件UploadFile.vue4.在页面上调用这样就ok了原创 2022-06-07 17:32:34 · 396 阅读 · 0 评论 -
Object.assign()用法以及问题点
Object.assign() 拷贝的只是属性值,假设源对象的属性值是一个指向对象的引用,那么它也只拷贝那个引用值,也就是说,对于Object.assign()而言,如果对象的属性值为简单类型(string,number),通过 Object.assign() 得到的新对象为深拷贝;如果属性值为对象或其他引用类型,那对于这个对象而言其实是浅拷贝的原创 2022-05-31 15:35:25 · 2523 阅读 · 0 评论 -
js 加减乘除精度
js小数点的计算精度会存在缺失问题,这里封装了一段代码用来解决加减乘除精度问题:calc.js文件:/** ** 加法函数,用来得到精确的加法结果 ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。 ** 调用:accAdd(arg1,arg2) ** 返回值:arg1加上arg2的精确结果 **/function accAdd(arg1, arg2) { let r1, r2, m try { r1原创 2021-11-29 17:36:27 · 1357 阅读 · 0 评论 -
导入import和导出export
export { }, 与变量名绑定,命名导出。import { } from 'module', 导入module的命名导出 ,module 为如上的./fn_data.js这种情况下 import { } 内部的变量名称,要与 export { } 完全匹配。export default any 导入 module 的默认导出。any 可以是函数,属性方法,或者对象。对于引入默认导出的模块,import anyfrom 'module', any 可以是自定义名称。原创 2021-11-12 18:03:08 · 2124 阅读 · 0 评论 -
import() 动态引入
import()返回一个 Promise对象, 返回的Promise的 then 成功回调中,可以获取模块的加载成功信息。 import()的使用:fn_handle.jssetTimeout(() => { const result = import('./fn_data.js') result.then(res => { console.log(res) })}, 0);fn_data.jsexport const name = '张三...原创 2021-11-26 17:41:29 · 3215 阅读 · 0 评论 -
js判断浏览器类型大全
var u = window.navigator.userAgent; var type_obj={ isOpera: u.indexOf("Opera") > -1, //判断是否Opera浏览器 isFF: u.indexOf("Firefox") > -1, //判断是否Firefox浏览器 isSafari: u.indexOf("Safari") > -1 && u.indexOf("Chrome") .原创 2021-11-02 16:22:09 · 545 阅读 · 0 评论 -
js监听移动端横屏和竖屏状态
1.通过添加监听事件onorientationchange,然后判断window.orientation这个参数:window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", function() { console.log(window.orientation) if (window.orientation === 180 || window.原创 2021-11-02 15:11:01 · 1800 阅读 · 0 评论 -
js计算2个日期相差的天数
function calc_day(timestamp1, timestamp2) { // 将时间戳相减获得差值(毫秒数) var differ = timestamp1 - timestamp2 /** * @desc 毫秒数除以1000就转为秒数 * @desc 秒数除以60后取整,就是分钟(因为1分钟等于60秒) * @desc 秒数除以3600后取整,就是小时(因为1小时等于3600秒) * @des.原创 2021-10-29 14:39:45 · 2782 阅读 · 0 评论 -
js获取当前时间并转化成年月日时分秒格式
js获取当前时间并转化成年月日时分秒格式原创 2021-10-28 18:02:44 · 616 阅读 · 0 评论 -
js实现地址转化经纬度以及经纬度转化地址
这是介绍的是高德地图api实现地址转化经纬度以及经纬度转化地址:1. 首先,注册开发者账号,成为高德开放平台开发者2. 登陆之后,在进入「应用管理」 页面「创建新应用」3. 为应用添加 Key,「服务平台」一项请选择「 Web 端 ( JSAPI )」 然后在html页面引入js:<script type="text/javascript" src="h...原创 2018-06-07 16:14:28 · 10269 阅读 · 0 评论 -
js日期格式与时间戳相互转换
1.将日期格式转化为时间戳: vardate =newDate('2018-06-08 18:00:00');// 有三种方式获取vartime1 = date.getTime();vartime2 = date.valueOf();vartime3 = Date.parse(date);console.log...原创 2018-06-08 18:37:35 · 23466 阅读 · 1 评论 -
移动端页面自适应布局
添加下列js代码,如果页面的宽度超过了640px,那么页面中html的font-size恒为100px,否则,页面中html的font-size的大小为: 100 * (当前页面宽度 / 640)然后使用rem作为单位,1rem=100px,这样页面就会随屏幕大小自动计算变化尺寸代码如下原创 2018-07-17 16:16:54 · 474 阅读 · 0 评论 -
js实现复制内容到剪切板
经测试,android和ios都可以兼容,代码如下:function copy(str){ var save = function (e){ e.clipboardData.setData('text/plain',str);//clipboardData对象 e.preventDefault();//阻止默认行为 }; document.addEventList...原创 2018-07-18 11:14:36 · 720 阅读 · 0 评论 -
js判断移动端手指的上滑,下滑,左滑,右滑,事件监听
原理:1:当开始一个touchstart事件的时候,获取此刻手指的横坐标startX和startY; 2:当触发touchmove事件的时候,再获取此时手指的横坐标moveEndX和纵坐标moveEndY;最后,通过两次获取的坐标差值来判断手指在手机屏幕上的滑动方向。代码: document.getElementById("id").addEventListener("touch...原创 2018-09-12 16:37:35 · 10090 阅读 · 0 评论 -
http POST请求键值对参数以及json参数
在使用post进行http请求时有2种参数类型,要根据接口切换不同的参数格式键值对格式参数一般表现为:username=123&password=123json格式参数一般表现为:{"username":"123","password":"123"}以下示例代码为vue代码:原创 2018-12-06 17:28:56 · 8548 阅读 · 0 评论 -
js判断是否微信浏览器
is_weixin() { var ua = navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) == "micromessenger") { return true; } else { return false; } }原创 2021-06-17 10:12:20 · 348 阅读 · 0 评论 -
JavaScript base64
标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。加密标准的JavaScript库GitHub - brix/crypto-js: JavaScript library of crypto standards.原创 2019-03-15 13:51:07 · 3433 阅读 · 0 评论 -
Promise和setTimeout执行顺序
Promise.then()先执行setTimeout后执行看一个示例:原创 2020-04-27 12:07:51 · 1101 阅读 · 0 评论 -
ES6特性一览
class类constructor():构造函数,new命令生成实例时自动调用extends:继承父类super:新建父类的thisstatic:定义静态属性方法get:取值函数,拦截属性的取值行为set:存值函数,拦截属性的存值行为原创 2020-05-25 18:12:07 · 333 阅读 · 0 评论 -
js生成随机数
一行代码实现随机生成字符串:Math.random() 生成 [0,1)的数,也就是0.123312、0.982931之类的,然后调用 number的 toString方法将其转换成36进制的,按照MDN的说法,36进制的转换应该是包含了字母a~z和数字 0~9 的,因为这样生成的是0.89kjna21sa类似这样的,所以要截取一下小数部分,即从索引2开始截取10个字符就是我们想要的随机字符串了原创 2021-06-28 11:13:01 · 833 阅读 · 0 评论 -
前端JS数据类型
JS 5大原始类型:Undefined、Null、Boolean、Number 和 String。原始数据值是一种没有额外属性和方法的单一简单数据值。typeof 运算符可返回以下原始类型之一:stringnumberbooleanundefined原创 2020-04-28 10:55:17 · 260 阅读 · 0 评论