javaScript
M-Didid
相信自己,一定能行!
展开
-
解析二维码的三种方式
方式二 qrcode方式三qrcode-decoder完整代码:Github地址原创 2022-06-22 09:44:53 · 3524 阅读 · 0 评论 -
获取时间补0 巧思
使用padStart方法ES2017引入的字符串补全功能,看知乎偶然间看到的。'1'.padStart(2,0) //01'01'.padStart(2,0) //01与之对应的还有一个padEnd方法,在字符串尾部补全使用模板字符串和slice传负数结合var hour=01;var hour1=1;console.log(`00${hour}`.slice(-2)); //01console.log(`00${hour1}`.slice(-2)); //01这样就不用手动原创 2022-01-13 14:30:12 · 148 阅读 · 0 评论 -
ES6 解构赋值更详细功能
知识点解构赋值可解构数组和对象数组元素按次序排列,取值取决于位置;对象的属性没有顺序,取值需与属性同名,才可取到值。给数组和对象解构赋值时可以给予默认值。//数组let [x, y = 'b'] = ['a']; // x='a', y='b'let [x, y = 'b'] = ['a', undefined]; // x='a', y='b'//对象var {x, y = 5} = {x: 1};x // 1y // 5给对象解构赋值时可定义新的变量名。let原创 2022-01-06 14:32:46 · 439 阅读 · 0 评论 -
图片base64转文件 并以formdata传给后台
base64转文件 并以formdata传给后台相关概念BlobUint8Array代码相关概念BlobBlob,Binary Large Object缩写,二进制大对象,表示一个不可变、原始数据的类文件对象。单位为字节(byte),一个字节8位长,为0~255Uint8Array8位无符号整型数组代码let binary = atob(base64.split(',')[1]);let array = [];for (let i = 0; i < binary.length; i原创 2021-11-22 17:51:08 · 876 阅读 · 0 评论 -
如何将变量作为javascript对象的key
如何将变量作为javascript对象的keyvar keyArr = ['key1', 'key2', 'key3', 'key4', 'key5'];var valueArr = [45, 67, "name", "kjhhh", 100];var tarArr = [];var k;for (let i = 0; i < keyArr.length; i++) { k = keyArr[i]; // tarArr.push({ // k: value原创 2021-08-17 16:26:14 · 340 阅读 · 0 评论 -
归并排序 代码详解 JavaScript
归并排序(分治法)思路代码思路归并排序即是将一个无序数组通过分治法排列成有序数组的过程,主要通过将原始数组分为若干个单数组(即只有一个数的数组),再分别排序并合并的过程。代码 var a = [6, 202, 100, 301, 38, 8, 1]; function mergeSort(arr) { const length = arr.length; if (length === 1) { //递归算法的停止条件,即为判断数组长度是否为1转载 2021-06-04 17:46:11 · 104 阅读 · 0 评论 -
javascript 实现新闻自动滚动
html代码<body> <div class="level1"> <div class="parent" id="parent"> <div class="scroll-one" id="scroll-one"> <ul> <li>第1行</li> <li&原创 2021-03-24 13:28:29 · 748 阅读 · 0 评论 -
判断一个整数是否为素数
判断一个整数是否为素数思路:让该数整除所有小于等于本身的所有整数,并定义一个数值记录有几个结果为0,若该数为素数,则结果一定为2,否则不算素数var isPrime = function (num, count = 0) { //一个一个整除小于它本身的数 for (let i = 0; i <= num; i++) { if (num % i == 0) { count++; }原创 2021-01-21 16:29:25 · 440 阅读 · 0 评论 -
检查一个数组 是否具有重复的元素
检查一个数组 是否具有重复的元素var chongfuArr=["1","1","2324","45465","234"]; var a=true; //默认没有重复 for(var i=0;i<chongfuArr.length;i++){ for(var j=i+1;j<chongfuArr.length;j++){ if(chongfuArr[i]==chongfuArr[j]){ console.原创 2021-01-18 13:31:34 · 109 阅读 · 1 评论 -
常用正则表达式
手机号验证const reg = /^1[23456789]\d{9}$/;邮箱验证const reg = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/;用户名验证4-16位数字、字母、下划线的组合const reg = /^[a-zA-Z0-9_]{4,16}$/;密码验证长度在8~18之间,只能包含字母、数字和特殊字符const reg = /^(?=.*\d)(?=.*[a-zA-Z]原创 2020-12-30 15:07:14 · 211 阅读 · 0 评论 -
生成随机数字
生成随机数字var random = [2, 3, 4, 5, 6, 7, 8, 9]; for (let i = 0; i < 1; i++) { // i指生成随机数字的位数 var index = Math.floor(Math.random() * 7); this.b += random[index]; }原创 2020-11-06 11:52:23 · 340 阅读 · 0 评论 -
javascript中call,apply,bind的简单理解
三者都是用来改变函数的this对象的指向的第一个参数都是this要指向的对象都可以利用后续参数传参关于传参call(this,a,b,c);apply(this,[a,b,c]);bind(this,a,b,c)();三者的第一个参数都是this要指向的对象call和bind传参时是在第一个参数后面一个一个的传apply传参是传入一个数组,里面是相应的参数因为bind返回的是一个函数,所以需要加上()对函数进行调用,而call和apply都是对函数的直接调用另外,bind还可以.原创 2020-07-22 14:11:46 · 106 阅读 · 0 评论 -
罗马数字转换器
罗马数字转换器function convertToRoman(num) { var decimal=[1000,900,500,400,100,90,50,40,10,9,5,4,1]; var romanNumeral=["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]; //与上面一一对应 var result=""; // 循环 for(let i=0;i<decimal.length原创 2020-07-14 14:17:14 · 2277 阅读 · 0 评论 -
while和if的区别
while和if的区别二者都有条件判断while是用来做循环的,也就是说只要条件满足,就会执行一次循环体,执行完以后会再判断一次条件,如果满足条件,还会再执行一次,终而复始,除非你在循环中对条件进行了改变才会从循环中跳出来。而if只做一次判断,条件不满足就不执行,满足就执行一次,执行完就往下执行,不会再回过头来继续执行。...原创 2020-07-14 14:15:21 · 1575 阅读 · 0 评论 -
验证输入是否为正确的组织机构代码
主要使用正则表达式 if (value === "") { callback(new Error("请输入组织机构代码")); } else if (value.length != 9) { callback(new Error("组织机构代码位数不正确")); } else { // var patrn = /^[0-9A-Z]+$/; var reg = /^[0-9A-Z]+$/; if (re原创 2020-06-08 09:53:51 · 1264 阅读 · 0 评论 -
判断一个数是否为质数(素数)
思路将数字分为两类,小于等于3 和 大于3若小于等于3 则这个数只要大于1 就是质数 否则不是(因为2和3是质数 1不是)若大于3 则只要这个数可以被任意大于1 小于本身的整数整除 就不是质数按照思路写代码function isPrime(m){ if(m<=3){ return m>1; } for(let i=2;i<m;i++){ if(m%i===0){ return false; } }原创 2020-05-29 14:30:01 · 238 阅读 · 0 评论 -
生成不重复的id标识符
生成唯一idformDataTime(){ var date=new Date(); var y=date.getFullYear(); var m=date.getMonth()+1; m=m<10 ? ('0'+m) : m; var d=date.getDate(); d=d<10 ? ('0'+d) : d; var h=date.getHours(); var minute=date.ge原创 2020-05-28 11:42:54 · 650 阅读 · 0 评论 -
关于遍历 javascript
不管是对象还是数组,没有数据都是不能遍历的 循环走不下去若再遇到遍历不进去的情况 打印数据看看改对象是否为空只要有数据 都能走下去原创 2020-03-20 15:50:52 · 74 阅读 · 0 评论 -
关于 details.scrollTop++; 没有效果
当出现details.scrollTop++; 没有效果时console.log(details.scrollTop); //0details.scrollTop++; console.log(details.scrollTop); //0是因为没有设置details的高度,给它一个高度就可以了++之后数字只比之前大了0.7多(不到1),是因为计算机存储数据的...原创 2019-11-29 17:19:41 · 295 阅读 · 1 评论 -
javascript 实现禁止用户使用ctrl + - 鼠标滚轮进行网页缩放
禁止ctrl 加 ‘+’ ‘-’ 控制网页缩放vue项目的话 将代码贴到App.vue的script标签下window.onload = function() { document.addEventListener('keydown', function (event) { if ((event.ctrlKey === true || event.metaKey === t...原创 2019-11-29 11:16:57 · 1486 阅读 · 1 评论 -
javascript使用setInterval()时,有时候函数会不起作用的问题 解决
setInterval() 里面函数不起作用解决:函数用“”包裹起来或使用一下匿名函数 GLOBAL.tt = setInterval(function(){ this.$parent.reallyRoll(); }, 100); GLOBAL.tt = setInterval( "_this.$parent.reallyRoll...原创 2019-11-29 11:01:31 · 1915 阅读 · 0 评论 -
鼠标事件mouseenter与mouseover区别
mouseenter: 不存在事件冒泡,鼠标进入被绑定事件监听元素节点时触发一次,再次触发是鼠标移出被绑定元素,再次进入时。而当鼠标进入被绑定元素节点触发一次后没有移出,即使鼠标动了,从子元素移出到本身也不再触发。mouseover: 存在事件冒泡,鼠标进入被绑定事件监听元素节点时触发一次,之后只要是在被绑定元素节点区域内移动并且从子元素移出到本身,都会被触发。...原创 2019-09-29 15:07:40 · 630 阅读 · 0 评论 -
关于javaScript学习的一些记录
知识点List itemif语句后面没有大括号时则只执行一条语句等号的作用:=:赋值表达式==:相等运算符===:严格相等运算符空数组[ ]和空对象{ }对应的布尔值都是truejavascript内部,所有数字都是以64位浮点数存储,所以javascript的底层根本没有整数+0和-0在大部分场合都是相等的 只有作分母时是不一样的 (1/+0=...原创 2019-08-21 15:58:19 · 143 阅读 · 0 评论