
JavaScript
文章平均质量分 61
穷酸的小明
这个作者很懒,什么都没留下…
展开
-
JavaScript实现点击复制功能
JavaScript实现点击复制功能。原理:原生JavaScript提供了一个方法:window.document.execCommand('copy');这个方法就是对当前的以选中的字符进行复制,这边就又有一个问题,就是我们该怎么选中?input、textarea等标签提供了select方法,我们就可以使用这个来模拟我们用户选中。我们可以创建一个input标签,当然这个标签要是透明的,或者是不可见的,不能平白无辜在页面上多一个标签吧,然后给这标签的value值赋上我们想要复制的内容,最后我们在执行原创 2020-12-11 16:13:18 · 794 阅读 · 0 评论 -
前端优化:防抖和节流
js防抖节流防抖节流是前端性能优化的一部分了,在一些场景中我们需要使用他们来帮助我们减少不必要的消耗,尤其是对一些监听事件的不必要消耗的优化。为什么要进行优化?我们以监听滚动事件来进行举例window.addEventListener('scroll',()=>{ console.log('test')})我们可以看到我们这个监听事件的执行频率很高,只要我们划一小部分,触发很多次事件,当我们的时间如果执行的很慢的话很可能页面就会卡死,而且这么高的执行频率我们也不是必要的,很多性原创 2020-08-07 17:38:50 · 420 阅读 · 0 评论 -
JavaScript模拟实现call、apply、bind
JavaScript模拟实现call、apply、bind1、实现call()js提供的call方法可以实现函数内this指向的改变,我们可以看下面这个例子const obj={ a:'1'}function fn(){ console.log(this.a)}fn() //undefinedfn.call(obj) //1,指向obj可以看到使用call我们可以将函数中的this强制指向obj对象。下面我们来自己实现这个函数,我们都知道函数fn如果直接执行,则this原创 2020-08-07 14:14:23 · 203 阅读 · 0 评论 -
JavaScript遍历数组(数组的迭代方法)
for循环遍历let a=[1,2,3,4,5]for(let i=0;i<a.length;i++){ console.log(a[i])}for(…in…)let a=[1,2,3,4,5]for(i in a){ console.log(a[i])}for(…of…)let a=[1,2,3,4,5]for(i of a){ console.log(i)}forEach参数是一个function,function的参数有三个,当前遍历的值,原创 2020-07-25 15:56:41 · 167 阅读 · 0 评论 -
JS数组方法(返回值以及是否改变原数组)
数组是js最常用的类型,JavaScript提供了很多数组的方法,今天我们就来好好整理一下。1、push在数组末尾插入元素let a=[1,2,3]a.push(4)a//[1,2,3,4]push方法会改变原数组返回值为插入后数组的长度2、pop移除数组最后一项let a=[2,3]a.pop()a//[2]会改变原数组返回值为被移除的元素3、shift获取数组头部元素let a=[3,4,5]a.shift()a //[4,5]会改变原数组返回值为获取到的原创 2020-07-25 14:52:14 · 1697 阅读 · 0 评论 -
JavaScript实现继承(七种)
Js继承在学习继承前希望读者先去学习下js原型和原型对象的知识。对于js原型和原型对象的理解原型链继承让一个函数的原型指向另一个引用类型的对象,这样子这个原型对象中就有一个指针是指向另一个函数的原型的,这个原型中又有一个指针是指向另一个函数的构造函数的。function Animal(){ this.name='动物'}Animal.prototype.say=function(){ return this.name}function Cat(){ this.nam原创 2020-07-23 17:49:55 · 161 阅读 · 0 评论 -
JS原型、原型对象的理解
JS原型、原型对象的理解原型:原型(prototype)是每个函数都具有的一个属性,本质上是一个指针,指向的是函数的原型对象。例如:function Person(Name){ this.name=Name}Person.prototype//可以查看当前Person函数的原型对象。原型对象函数中的protype属性所指向的对象,这个对象的用途就是可以指定特定类型的所有实例共享的一个方法和属性,我们不必在构造函数声明一个对象实例的信息。例如:function Person(){原创 2020-07-22 16:34:07 · 483 阅读 · 0 评论 -
express+jwt实现token验证
由于面试了前端,但是我简历上写着我会后端所以被问到了token验证这个问题,但是我自己的项目是没有用到的,他问了我jwt的组成结构什么的。。我当然是一问三不知啦,所以回来之后就自己额外做了一下这个token验证。组成jwt主要有三部分组成header,主要就是存放了你的token类型和你的加密方式。playload,一般有签发人,签发时间,过期时间,编号等,这部分是可以添加自己的一些数据进去。signature,要生成这个是需要以上两个字段的,还需要一个密钥,这是只有服务端才知道的一个密钥,生成原创 2020-06-19 00:38:29 · 2717 阅读 · 0 评论 -
JavaScript手写快速排序
最近的一次前端实习面试题。。因为没准备充分,导致在快排这一块就直接死了。。太丢人了。回来之后好好总结了下,然后写下这篇js实现快排。原理原理其实很简单,我们要先设一个基准数,我们一般设为第一个,然后我们从数组的两端开始找,这边我们开始节点设为low,尾节点设为high,我们从high开始往左找一个比基准数要小的数,(至于为什么要先从high开始往左查找后边我们会讲到),我们在从low开始往右找比基准数大的值,这里一定要满足low是小于high的,然后我们交换找到的两个值,然后当我们找的过程中low=hi原创 2020-06-18 17:36:33 · 1405 阅读 · 0 评论 -
前端面试(js部分1)
JavaScript面试题1markdown源文件提取码:x67n1、get请求传参的误区get请求对请求参数的大小有限制其实是一个误区。在http协议中并未规定get请求的参数大小限制,对get请求有限制的是浏览器或者是web服务器对URL的长度的限制。2、js闭包闭包的作用:可以在外部读取到函数内的局部变量,并且使该局部变量一直存在于内存之中,不会污染全局变量(JavaScript的GC机制,当一个变量不在被引用时将会被回收,闭包就解决了局部变量被回收的问题。)例子:function原创 2020-06-06 23:55:49 · 163 阅读 · 0 评论 -
用js实现简单的扫雷
JS实现扫雷实现效果:总体思想:这个扫雷难点主要就两点:第一点就是雷的随机分布,我这里使用js动态生成了10*10的table表格,然后设定生成20个雷,然后在生成每个格子代表的数字,雷我们用9表示,因为1-8要被其他非雷格子使用,然后我们只要一格是雷区那么周围的格子都加一,这样我们的雷区就生成好了,然后玩法的编写主要难点就是在当点击数字为0时的格子时要把它周围的0区也显示出来,因此这里我们使...原创 2020-03-22 20:10:13 · 1565 阅读 · 0 评论