JS
想搞全栈的前端
愿君学长松,慎勿作桃李.受屈不改心,然后知君子
展开
-
自定义时间格式化输出
自定义时间格式化输出描述按所给的时间格式输出指定的时间格式说明对于 2014.09.05 13:14:20yyyy: 年份,2014yy: 年份,14MM: 月份,补满两位,09M: 月份, 9dd: 日期,补满两位,05d: 日期, 5HH: 24制小时,补满两位,13H: 24制小时,13hh: 12制小时,补满两位,01h: 12制小时,1mm: 分钟,补满两位,14m: 分钟,14ss: 秒,补满两位,20s: 秒,20w: 星期,为 [‘日’, ‘一’, ‘原创 2021-11-04 11:25:34 · 205 阅读 · 0 评论 -
ts写法vue组件内守卫beforeRouteLeave不生效问题
解决办法需要加上下面一行代码Component.registerHooks(['beforeRouteEnter', 'beforeRouteLeave', 'beforeRouteUpdate']);然后正常示使用即可beforeRouteLeave(to:any, from:any, next:any) { to.meta.keepAlive = true; next(0);}原创 2021-09-28 14:12:10 · 3368 阅读 · 0 评论 -
ts中引入js文件以及使用全局js方法报错问题
ts中引入js报错一、 无法找到模块“@/xxx/xxx”的声明文件。“xxx.js”隐式拥有 “any” 类型。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Txigu319-1631930149705)(C:\Users\oyzq\AppData\Roaming\Typora\typora-user-images\1631929576599.png)]解决办法:使用 require引用const { encryptionJump,decryptJump } =原创 2021-09-18 09:56:51 · 14425 阅读 · 0 评论 -
原生上传:input实现上传
input实现上传<input type="file" id="importFile" /><input type="button" @click="submitBt" id="import-submit" value="提交导入文件" /><script>function submitBt() { const formData = new FormData(); const name = $('#importFile').val();原创 2021-09-06 15:51:09 · 1116 阅读 · 0 评论 -
原生js以及vue 文件下载
文件下载普通js下载function fileDown(formData, url) { var xhr = new XMLHttpRequest(); xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', 'application/json;charset=utf8'); xhr.setRequestHeader('bwTicket', $bw.bwUtil.getLocalData('bwTicket')); x原创 2021-09-06 14:16:14 · 377 阅读 · 0 评论 -
JS forEach循环不能break或return的原因
语法arr.forEach(callback(currentValue [, index [, array]])[, thisArg])参数callback为数组中每个元素执行的函数,该函数接收一至三个参数:currentValue数组中正在处理的当前元素。index 可选数组中正在处理的当前元素的索引。array 可选forEach() 方法正在操作的数组。thisArg 可选可选参数。当执行回调函数 callback 时,用作 this 的值。如上图实例可以清楚看到forE原创 2021-07-22 10:03:51 · 2176 阅读 · 2 评论 -
jquery获取最外层(最顶部)window对象
window.topTop属性返回当前窗口的最顶层浏览器窗口。在不跨域的前提下,window.top就能获得最顶层的window对象,然后通过window.top.document.getElementById(…)或者window.top.(...)(window.top.(...)(window.top.(...)(window.top.即是顶层frame的jQuery实例)来查找元素了。...原创 2021-07-12 18:05:44 · 3016 阅读 · 0 评论 -
防抖和节流的小demo
防抖:连续触发事件,只要不是最后一次触发,就不执行异步操作<button>点我试试</button><script> var btn = document.querySelector('button') var timer = null btn.onclick = function() { // 每次执行把上一次定时器清除,第一次执行也会清除timer clearTimeout(timer) // 延时 0.5s 执行 timer = setTi原创 2021-01-29 11:37:16 · 213 阅读 · 1 评论 -
正确比较0.1+0.2 与 0.3的方法
0.1+0.2 != 0.3这里输出的结果是 false,说明两边不相等的,这是浮点运算的特点,也是很多同学疑惑的来源,浮点数运算的精度问题导致等式左右的结果并不是严格相等,而是相差了个微小的值。正确的比较方式检查等式左右两边差的绝对值是否小于最小精度,才是正确的比较浮点数的方法。这段代码结果就是 true 了。...原创 2021-01-20 17:01:04 · 402 阅读 · 0 评论 -
图解原型链
原创 2019-12-16 10:51:59 · 155 阅读 · 0 评论 -
一个例子弄懂事件冒泡和事件捕获
先看一张图先看这张图,然后我们用例子来理解。事件冒泡事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。事件冒泡会从当前触发的事件目标一级一级往上传递,依次触发,直到document为止。事件冒泡例子层级关系:body>div>p 给body,div,p分别绑定点击事件,console.log()出body,div,p;<!DOCTY...原创 2019-10-28 20:40:35 · 804 阅读 · 0 评论 -
JS数组所有方法(ES5和ES6)
1 arr.push() 从后面添加元素,返回值为添加完后的数组的长度let arr = [1,2,3,4,5]console.log(arr.push(5)) // 6console.log(arr) // [1,2,3,4,5,5]2 arr.pop() 从后面删除元素,只能是一个,返回值是删除的元素let arr = [1,2,3,4,5]console.log(arr.p...原创 2019-10-10 12:32:34 · 916 阅读 · 1 评论 -
JS通用的事件注册函数
JS通用的事件注册函数function addEvent(element, type, handler){ if (element.addEventListener) { element.addEventListener(type, handler, false); } else if (element.attachEvent) //fo...原创 2019-09-21 14:52:00 · 712 阅读 · 0 评论 -
js实现简易计算器
前言今天一个朋友写计算器遇到写bug,帮他解决也花了一些时间,就顺便记录一下吧!实现在线预览实现主要是那几行js代码,像html,css部分并没有太大关系。代码如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="view...原创 2019-07-17 09:39:18 · 735 阅读 · 0 评论 -
十大排序算法
前言源码地址:Sorts正文排序算法说明(1)排序的定义:对一序列对象根据某个关键字进行排序;输入:n个数:a1,a2,a3,…,an输出:n个数的排列:a1’,a2’,a3’,…,an’,使得a1’<=a2’<=a3’<=…<=an’。再讲的形象点就是排排坐,调座位,高的站在后面,矮的站在前面咯。(3)对于评述算法优劣术语的说明稳定:如果a原本在b前面,...原创 2019-07-04 08:40:25 · 212 阅读 · 0 评论 -
匿名函数、自执行函数,自执行匿名函数和立即执行的函数表达式区别
匿名函数、自执行函数,自执行匿名函数和立即执行的函数表达式区别今天在写代码的时候发现对自执行函数有点懵,便去查询资料。然后紧接着自执行匿名函数,立即执行函数,匿名函数一窝蜂的出来了,借此就好好谈谈这几个函数的区别吧。匿名函数匿名函数比较好理解,顾名思义就是没有名字的函数//普通函数:此函数声明了一个名为a的函数。 function a(){ return 1; };//匿名函数...原创 2019-03-24 11:20:46 · 1317 阅读 · 0 评论 -
javaScript里的闭包到底是什么?该怎么理解?
关于javaScript里的闭包问题,看了很多答案都不甚理解,在这里我谈谈我理解里的闭包。在理解闭包是什么之前我需要先理解什么是作用域。全局作用域打开一个 js ,随便写了一行代码,这行代码所在的位置就会是全局作用域(global scope)。比如:var i =1;//全局作用域在代码任何位置都可以使用,一篇代码只有一个全局作用域局部作用域全局作用域只有一个,在全局使用域里面定义...原创 2019-03-27 10:51:57 · 357 阅读 · 0 评论 -
基本类型和引用类型的区别以及在内存中的分配
ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。主要区别 < 基本数据类型 引用数据类型 在栈中进行分配 在堆中进行分配 变量名指向具体的数值 变量名指向存数据对象的内存地址,即变量名指向hash值 变量在声明之后java就会立...原创 2019-03-28 14:55:29 · 1410 阅读 · 1 评论 -
定时调用和延时调用用法及区别
定时调用setlnterval()定义和用法setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。语法setInterval(code,millisec...原创 2019-03-26 17:02:18 · 1156 阅读 · 0 评论 -
javaScript正则表达式(内附最全的常用正则表达式)
JavaScript 正则表达式正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。什么是正则表达式?正则表达式是由一个字符序列形成的搜索模式。当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。正则表达式可以是一个简单的...原创 2019-04-08 12:31:42 · 791 阅读 · 0 评论 -
模板引擎的基本概念及其使用步骤
什么是模板引擎?模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。模板原理模板的诞生是为了将显示与数据分离,模板技术多种多样,但其本质是将模板文件和数据通过模板引擎生成最终的HTML代码。模板使用模板链接:https://aui.github.io/art-templa...原创 2019-04-04 15:39:01 · 851 阅读 · 0 评论 -
剖析js原型与原型链
原型模式 我们创建的每一个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。如果按字面意思来理解,那么prototype就是通过调用构造函数而创建的那个对象实例的原型对象。使用原型对象的好处是可以让所有对象实例共享它所包含的属性和方法。换句话说,不必在构造函数中定义对象实例的信息,而是可以将这些信息直...原创 2019-04-21 08:40:15 · 154 阅读 · 0 评论 -
JavaScript中的回调函数callback
解释A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.以上callback的英文解释,非常清晰简明,有时候英文理解要比翻译成中文二次理解更清楚。大概意思是:回调是一个函数,它作为参数...原创 2019-04-25 09:39:08 · 2643 阅读 · 1 评论 -
clientX,screenX,pageX,offsetX的区别
前言关于clientX,screenX,pageX,offsetX的区别之前也比较迷糊,然后自己写了几个demo算是弄明白了,在这记录一下。定义一、clientX、clientY点击位置距离当前body可视区域的x,y坐标。可以理解为距离浏览器窗口的距离,但注意这里不包括浏览器的导航栏距离只是浏览器内容区域。二、pageX、pageY对于整个页面来说,包括了被卷去的body部分的长度...原创 2019-06-17 12:02:35 · 4576 阅读 · 2 评论 -
滑块验证码实现及原理
前言滑块验证码也是生活中常见的,本文会介绍如何实现以及原理。如果对图片验证码感兴趣的话可以查看这篇文章:图片验证码的实现方法实现滑块验证码主要用到几个属性:clientX,screenX,pageX,offsetX,如果对此有疑惑可以查看这篇文章:clientX,screenX,pageX,offsetX的区别代码的解释在注释中已经写的很清楚了,还不了解的欢迎留言。<!DOCTY...原创 2019-06-17 12:54:10 · 15942 阅读 · 2 评论 -
本地存储和离线缓存的作用和区别
前言前端的存储方式有:localStorage、sessionStorage、cookie、UserData、webSQL、indexeddb、HTML5离线存储等。各个存储方式有各自的优缺点,本文我们来探讨一下不同存储的功能及区别。本地存储1.cookie在h5之前,存储主要用的是cookie。cookie会随着每次http请求头信息一起发送,无形中增加了网络流量,另外,cookie能存...原创 2019-06-18 16:52:47 · 7221 阅读 · 0 评论 -
js事件委托
事件委托事件委托:也称事件代理 就是利用冒泡的原理 把事件加到父级上,触发执行效果说明你应该写过这样的程序,有一个列表,当鼠标移入每个li,背景颜色变红,于是我们写出了这样的代 码:window.onload = function(){ var oUl = document.getElementById('ull');//获取ul var aLi = document.g...原创 2019-06-24 09:49:20 · 110 阅读 · 0 评论 -
for与for in的区别
for与for in的区别从学习C语言开始就学习了遍历,for更是用的特别熟悉。在javascript中除了有for循环还有for in,刚开始接触for in的时候总是把他当for来使用。感觉没什么区别然而在最近写项目时遇到了这个for in才知悉了他与for的不同,果然还是实践出真知。下面先简单介绍一下for 和 for in吧:for的语法结构: for( 初始值;判断条件;...原创 2019-03-23 18:34:37 · 2035 阅读 · 0 评论