JavaScript
前端小端长
这个作者很懒,什么都没留下…
展开
-
element ui封装可搜索下拉框(解决数据过多卡顿问题)
element ui封装可搜索下拉框,最多显示30条,解决数据过多卡顿原创 2022-06-15 15:02:11 · 780 阅读 · 0 评论 -
关闭单个文件eslint的检测
在文件代码顶部添加/* eslint-disable */原创 2020-11-11 17:32:14 · 2188 阅读 · 0 评论 -
用JS取出后台返回数据中用标签样式包裹的内容
后台返回的数据是这样的: `<p><span style="color: rgb(51, 51, 51); font-family: "Open Sans", sans-serif; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-vari...原创 2020-03-20 11:23:56 · 2005 阅读 · 1 评论 -
JavaScript手动实现call方法
call简易版(不支持传参的方法)实现思路:给目标对象创建一个属性,将要调用的方法绑定到这个属性上直接运行刚刚创建的属性删除这个属性这样就间接绑定了this的指向,并实现了callFunction.prototype.mycall=function(con){ //给Function的原型对象上加上mycall方法 con.fun = this; //this即...原创 2019-12-27 14:37:25 · 1540 阅读 · 0 评论 -
JS简单封装倒计时函数
上代码。自用:/** * * * @param {*} stopTimeStr //结束时间 * @returns {} 剩余时间对象 */function sub(stopTimeStr) { let stopTime = new Date(stopTimeStr); let nowTime = new Date(); let subTime = Ma...原创 2019-11-06 19:31:26 · 1110 阅读 · 0 评论 -
JS通过闭包手动实现setInterval功能
目标:实现一个setInterval,支持回调函数注册,可以手动开始和结束。代码:/** * * * @param {*} fn 回调函数 * @param {*} setTime 延迟时间,单位是毫秒 * @returns {} 包含操作 */function mysetInterval(fn,setTime){ let t = null; return...原创 2019-11-06 18:50:23 · 943 阅读 · 1 评论 -
JS求组成n块的最少硬币数 (单个面值只有一块、四块、五块)
代码:function getNum(N){ //1,4,5块 if(Math.floor(N/4)-Math.floor(N/5)<=3){ let n1 = Math.floor(N/5)+Math.floor(N%5/4)+Math.floor(N%5%4); let n2 = Math.floor(N/4)+Math.floor(...原创 2019-10-24 22:06:49 · 1421 阅读 · 0 评论 -
总结对JS面对对象理解
1.面对对象概念:面对对象编程是一种编程方式,跟传统的面向过程编程不同原创 2019-10-21 21:24:15 · 812 阅读 · 0 评论 -
订阅——发布者模式简单实现
//定义发布订阅Even类class Even{ constructor(){ this._events = {}; //事件对象,存放添加的一个个事件,每个事件为一个数组,数组里存放该事件应该触发的函数 } $on(even,fn){ if(this._events[even]){ //如果事件存在,将fn添进事件数组里 ...原创 2019-10-17 14:54:03 · 673 阅读 · 0 评论 -
JS中作用域与作用域链总结
JS作用域:js作用域分为一共分为两种:全局作用域(Global Scope),最外层函数和在最外层函数外面定义的变量拥有全局作用域、所有末定义直接赋值的变量自动声明为拥有全局作用域、所有window对象的属性拥有全局作用域。局部作用域(Local Scope), 只有局部代码才能访问到的作用域。例如函数。作用域链:函数对象内部有一个只能由JS引擎访问到的属性[[scope]],它指...原创 2019-10-14 21:51:23 · 547 阅读 · 0 评论 -
Object.defineProperty()理解
一、Object.defineProperty()准备知识:Js对象一共有三种属性:命名数据属性:即拥有确定的值的属性,最常见的属性。命名访问器属性:通过setter,getter访问器创建的属性。内部属性: 由JavaScript引擎内部使用的属性,不能通过JavaScript代码直接访问到。开始Object.defineProperty的作用是直接在对象上定义一个新属性,或...原创 2019-10-11 16:35:28 · 433 阅读 · 0 评论 -
JavaScript中用dom现有方法封装insetAfter方法
我们在日常工作中可能会用到insetBefore插入一个节点,而insertBefore方法是在已有的节点前添加一个新节点。但是我们有时候可能想要在某一个节点后面添加节点,不幸的是,DOM并没有提供一个类似于insertBefore这么简便的insertAfter方法。实现这个功能的方法有很多种,我们可以像下面这样自己封装一个insertAfter方法,使我们可以在使用的时候直接拿来用。具体...原创 2019-08-25 16:46:56 · 521 阅读 · 0 评论 -
原生JS实现浮动块元素跟随鼠标移动特效及处理IE兼容性方法(面试重点,常用)
在实现之前应该明白下面的概念:事件对象:对事件的一个抽象;当事件触发时,系统产生一个事件对象,并且将这个对象传递给事件函数。事件对象里有如下几个属性我们将会用得到:screenX/screenY:鼠标位置相对于用户屏幕水平偏移量,而screenY也就是垂直方向的,此时的参照点也就是原点是屏幕的左上角。兼容性:所有浏览器均支持clientX/clientY:跟screenX相比就是...原创 2019-08-30 17:03:33 · 1012 阅读 · 0 评论 -
JS闭包——总结本人对JS函数闭包的理解(面试重点)
闭包闭包的概念: 闭包是由函数及声明该函数的词法环境组成的现象,这种现象在JS中无处不在。闭包的例子:function myFunc1() { var a=10; function myFunc2() { alert(a); } return myFunc2;}这是我们日常最常见的闭包现象:一个函数在另一个函数内部声明,并且被外部函...原创 2019-08-31 17:19:45 · 559 阅读 · 0 评论 -
js中this的指向问题总结(面试重点)
当this出现在全局环境中:当this出现在全局环境中,指代当前顶层对象window.console.log(this);控制台将会输出:[object Window]当this处在构造函数中:当this出现在构造函数中时,this用来表示此类的实例对象,如下:function person(name){ this.name = name; console.log...原创 2019-09-03 14:35:41 · 996 阅读 · 0 评论 -
浏览器中JS事件循环机制(面试题解)
浏览器环境下JS的事件循环机制:function foo() { setTimeout(foo, 0); // 是否存在堆栈溢出错误?}; 浏览器的主要组件包括调用堆栈,事件循环,任务队列和Web API。像setTimeout,setInterval和Promise这样的全局函数不是JavaScript的一部分,而是 Web API 的一部分。JS调用栈是后进先出(LIFO)的。引...原创 2019-09-03 19:41:09 · 2935 阅读 · 0 评论 -
对象的浅拷贝与深拷贝理解与多种方式实现——JavaScript
对象的浅拷贝:概念: 浅拷贝就是指拷贝引用,新生成的引用和原来的引用都是指向同一个对象的实例,彼此之间的操作会相互影响。对象的深拷贝:概念: 在堆中重新开辟内存,把原引用对应的对象实例中所有的内容进行拷贝,因此保证了深拷贝的对象和原来的对象是完全隔离的,他们之间相互没有影响。对象的浅拷贝实现:直接赋值:let obj = { name:"张三",}let objOne =...原创 2019-09-17 11:29:31 · 706 阅读 · 1 评论 -
JS——Object.create()方法实现继承
Object.create(obj)方法创建一个新对象,使用现有的对象来提供新创建的对象的–proto–。例子:let myObj = { say() { console.log(`${this.name}说话了,他说他今年${this.age}岁了`); } } let testO...原创 2019-09-28 19:02:07 · 954 阅读 · 0 评论 -
JS——JSON.stringify()与JSON.parse()
JSON.stringify()与JSON.parse()不仅支持JSON形式,还支持数组形式:let str = `[1,2,3,4,5]`;let jsonOne = JSON.parse(str);console.log(jsonOne);let str2 = JSON.stringify(jsonOne);console.log(str2);[1, 2, 3, 4, 5]...原创 2019-10-09 11:16:00 · 391 阅读 · 0 评论 -
JS递归之裴波那契数列问题(兔子问题,面试)
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21…解析:定义一个函数,完成计算每个月兔子总数的功能。function month(a){ if(a===1||a===2){ return 1; }else{ ...原创 2019-08-15 15:25:17 · 1392 阅读 · 0 评论