JavaScript
文章平均质量分 79
JavaScript
mengke.me
呼啦啦
展开
-
JavaScript 数组扁平化处理的方法总结
所谓“数组扁平化”就是指将一个多维数组变为一个一维数组,比如:[1, 2, [3, 4, [5, 6]] ==> [1, 2, 3, 4, 5, 6]我们通过几种常用方式来实现数组的扁平化。方法1:flat()法flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。语法:var newArray = arr.flat([depth])depth:可选,指定要提取嵌套数组的结构深度,默认值为 1。当depth值为 In原创 2020-06-28 15:32:21 · 521 阅读 · 0 评论 -
事件监听的简单封装
var on = (function() { if (document.addEventListener) { return function(element, event, handler) { if (element && event && handler) { element.addEventListener(event, handler, false); } .原创 2020-06-23 22:26:47 · 340 阅读 · 0 评论 -
JavaScript数组去重方法总结
方法一、利用ES6 Set去重(ES6中最常用)function unique (arr) { return Array.from(new Set(arr))}var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];console.log(unique(arr))//[1, "true",原创 2020-06-12 09:21:53 · 185 阅读 · 0 评论 -
NodeJS使用http模块实现服务器代理
main.jsconst http = require('http');const url = require('url');const path = require('path');const fs = require('fs');const qs = require('querystring');const { promisify } = require('util');const readFileAsync = promisify(fs.readFile);const proxy原创 2020-05-27 22:15:02 · 1000 阅读 · 0 评论 -
1分钟搞懂箭头函数this指向问题
在网上看到很多关于箭头函数this指向的博客和问题解答,但是基本写的都不准确,有的甚至是错误的,在其他博客网站得到的答案基本就是“箭头函数在定义时this指向谁那么之后就一直指向谁”,这句话虽然不错,但是这不还是没说清楚到底是指向了谁嘛。实在看不下去了,今天在这里详细写一写箭头函数的this到底指向谁?在这里首先看一看MDN对于箭头函数的介绍:箭头函数表达式的语法比函数表达式更简洁,并且没有...原创 2020-03-23 23:10:57 · 792 阅读 · 2 评论 -
KeyboardEvent.metaKey 苹果电脑command键按下、win键按下
KeyboardEvent.metaKey为只读属性,返回一个布尔值,在事件发生时,用于指示Meta键是按下状态(true),还是释放状态(false)。备注:在MAC键盘上,表示Command 键(⌘),在Windows键盘上,表示 Windows 键(⊞)。语法var metaKeyPressed = instanceOfKeyboardEvent.metaKe...原创 2020-03-23 20:32:46 · 1551 阅读 · 0 评论 -
原生JS实现 slice() 方法
定义和用法slice() 方法可从已有的数组中返回选定的元素。语法arrayObject.slice(start,end)实现Array.prototype.slice=function(start,end){ start=start===undefined?0:start; end=end===undefined?thi...原创 2020-03-21 20:35:16 · 945 阅读 · 0 评论 -
原生JS实现 some() 方法
定义和用法some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。some() 方法会依次执行数组的每个元素:如果有一个元素满足条件,则表达式返回true, 剩余的元素不会再执行检测。 如果没有满足条件的元素,则返回false。注意:some() 不会对空数组进行检测。注意:some() 不会改变原始数组。语法array.some(function(...原创 2020-03-03 23:12:12 · 1477 阅读 · 3 评论 -
原生JS实现 every() 方法
定义和用法every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。every() 方法使用指定函数检测数组中的所有元素:如果数组中检测到有一个元素不满足,则整个表达式返回false,且剩余的元素不会再进行检测。 如果所有元素都满足条件,则返回 true。注意:every() 不会对空数组进行检测。注意:every() 不会改变原始数组。语法...原创 2020-03-03 23:09:23 · 1487 阅读 · 0 评论 -
原生JS实现 fliter() 方法
定义和用法filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。注意:filter() 不会对空数组进行检测。注意:filter() 不会改变原始数组。语法array.filter(function(currentValue,index,arr), thisValue)参数说明参数 描述 function(curr...原创 2020-03-03 23:05:06 · 653 阅读 · 0 评论 -
JS实现数字字母混合验证码(数字+大写字母+小写字母)
我之前写了一篇《JS实现随机验证码》,可以产生随机数字、随机颜色、随机位置,但只能产生数字验证码,今天在此基础上进行改进,使之可以随机大写字母、小写字母、数字三种类型。思路我们使用Math.random()获得0~34的随机数,将0和10~33规定为字母,然后我们随机将字母改为大写字母。实现验证码的随机我们声明一个txt来存放我们获得的0~34的随机数。然后声明一个flag来标识我们...原创 2020-03-03 22:59:25 · 4256 阅读 · 0 评论 -
JS生成随机验证码
在网站中我们很常见到形形色色的验证码,今天我们来用JS来生成一个随机的二维码。我们需要用到canvas来进行验证码的绘制什么是CanvasHTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。画布是一个矩形区域,您可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。点击学习思路我们要做的二维码首先要有随机的数字,其...原创 2020-02-29 20:58:13 · 2265 阅读 · 0 评论 -
JS判断一个日期是这一年的第几天
使用JS判断一个日期是这一年的第几天。首先我们先整理一下思路:假如是12月11日,那么我们需要将1-11月的天数加起来,然后加上12月的11天。 假如是1月9日,那么我们只需要将1月的这九天就可以了。那么这样的话首先我们可以使用if else去判断,但是用if else的话效率是很低的,这里我们可以使用switch的case穿透效果来优化代码:/** year :年份* ...原创 2020-02-25 22:23:33 · 6230 阅读 · 2 评论 -
layer弹出层的关闭问题——在执行完毕后关闭当前弹出层
今天再用layui写东西的时候遇到一个问题,就是在弹出层操作完之后不知道怎么在弹出层内操作关闭这个弹出层,查阅资料之后终于找到了解决的办法。下面两段出自官网文档。一、layer.close(index) - 关闭特定层关于它似乎没有太多介绍的必要,唯一让你疑惑的,可能就是这个index了吧。事实上它非常容易得到。//当你想关闭当前页的某个层时var index = layer.op...原创 2018-07-31 11:27:54 · 47425 阅读 · 5 评论 -
JS object对象转String字符串方法
function obj2string(o) { var r = []; if (typeof o == "string") { return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t"原创 2018-07-31 08:57:24 · 3591 阅读 · 0 评论 -
一个页面中有多个audio标签,其中一个播放结束后自动播放下一个,audio连续播放
一个页面中有多个audio标签时,随机点击一个开始播放,当播放完成时自动播放下一个audio的音乐。var audios = document.getElementsByTagName("audio");for(var i=0;i<audios.length;i++){ //console.log("audios "+i+" SRC:" + audios[i].currentS...原创 2018-07-17 11:36:53 · 11847 阅读 · 5 评论 -
JS获取Param参数
//获取url中的参数function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参...原创 2018-05-09 09:36:08 · 12728 阅读 · 0 评论