![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
柚子·小哥哥
这个作者很懒,什么都没留下…
展开
-
手写实现递归函数
实现递归函数的思路:将要拷贝的数据 obj 以参数的形式传参声明一个变量 来储存我们拷贝出来的内容判断 obj 是否是引用类型数据,如果不是,则直接赋值即可( 可以利用 obj instanceof Type 来进行判断),由于用 instanceof 判断array 是否是object的时候,返回值为true, 所以我们在判断的时候,直接判断obj 是否是Array 就可避免这个问题根据判断的不同类型,再给之前的变量赋予不同的类型: [ ] : { }循环obj 中的每一项,如果里面还有复杂原创 2020-10-12 09:04:26 · 2172 阅读 · 0 评论 -
作用域和作用域链
什么是作用域:作用域是可访问变量的集合。在 JavaScript 中, 对象和函数同样也是变量。在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。分为 全局作用域/局部作用域(函数作用域与块级作用域)全局作用域:全局作用域贯穿整个javascript文档,在所有函数声明或者大括号之外定义的变量,都在全局作用域里。一旦你声明了一个全局变量,那么你在任何地方都可以使用它,包括函数内部。事实上,JavaScript默认拥有一个全局对象window,声明一个全局变量,就是为wi原创 2020-10-10 13:21:06 · 175 阅读 · 0 评论 -
Echarts图表库二次封装
Echarts图标库二次封装转载 2020-09-25 08:22:37 · 668 阅读 · 0 评论 -
javascript 中的监听事件
js 实现事件监听1、行内绑定行内绑定:在HTML 的标签中通过onclick属性进行绑定,绑定方式为:on+ 事件名称, 在将所触发你事件赋值给该属性<button onclick='onClick()'></button>2、 使用元素进行事件绑定使用element.onclick 进行 事件绑定,通过操作DOM元素,为DOM绑定事件【使用形式同行内绑定】window.onload = function (){ let btn = document原创 2020-09-13 19:55:16 · 526 阅读 · 0 评论 -
前端存在的设计模式有
设计模式什么是设计模式:设计模式就是在某种场合下对某个问题的一种解决方案,说白了就是,给面向对象软件开发中的一些好的方法,抽象,总结,整理后去取你一个专业的名字;1、 单例模式什么是单例模式单例模式的定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。实现的方法为先判断实例存在与否,如果存在则直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。使用场景:适用场景:一个单一对象。比如:弹窗,无论点击多少次,弹窗只应该被创建一次。export default原创 2020-09-13 19:26:29 · 129 阅读 · 1 评论 -
javascript中的事件模型
事件模型:1、DOM 0 级模型DOM 0 级模型叫原始事件模型,在这个模型中,事件不会传播,即没有事件流的概念;一、 HTML 代码中直接绑定:<input type='button' onclock='fun()'>二、 通过js代码指定的属性var btn = document.getElementById('.btn')btn.onClick= fun移除监听函数btn.onClick = nullIE 事件模型:IE事件模型有两个过程事件原创 2020-09-13 12:24:17 · 175 阅读 · 0 评论 -
垃圾回收和内存泄露
什么是js中的垃圾回收机制:javascript中的变量的生命周期要分开来看,对于全局变量,他的生命周期会持续到页面关闭 【这里就会牵扯到内存泄露】,对于局部的变量,函数执行完后,局部变量的生命周期结束,他所占用的内存会通过垃圾回收机制释放【这就是垃圾回收机制】;垃圾回收机制:垃圾回收机制有两种方式可以实现:引用计数:什么是引用计数:引用计数就是,跟踪记录每个值的引用次数,当声明一个变量,并将一个引用类型值赋给该变量,这个值的引用次数就是1,如果这个值再次赋值给一个变量,则引用次数原创 2020-09-12 23:10:34 · 175 阅读 · 1 评论 -
事件委托的原理
事件委托的原理:事件委托,就是把一个元素响应事件(click、keydown…)的函数委托到另一个元素;1:事件的冒泡,所以才可以在父元素来监听子元素触发的事件。2:DOM的遍历,一个父级元素包含的子元素过多,那么当一个事件被触发时,是否触发了某一种类型的元素呢?这是事件委托的两个核心,跟事件委托相关的技术点,如果碰到什么问题,都可以在这两个点进行切入,来寻求解决方案。事件的冒泡这个要讲一下,在 document.addEventListener 的时候我们可以设置事件模型:事件冒原创 2020-09-12 00:12:39 · 1770 阅读 · 0 评论 -
数组扁平化的详解:
什么是数组扁平化:数组拍平方法 Array.prototype.flat() 也叫数组扁平化、数组拉平、数组降维。数组的拍平方法也是数组的数组扁平化的一种叫法;const animals = ["????", ["????", "????"], ["????", ["????", ["????"]], "????"]];// 不传参数时,默认“拉平”一层animals.flat();// ["????", "????", "????", "????", ["????", ["????"]],原创 2020-09-11 23:29:07 · 364 阅读 · 0 评论 -
数组去重的方法有:
1、 setvar Str = new Set(["1", "1", "ss", "sdf", "2", "2", "3"]);console.log(Str);2、双重for 循环去重:var a = [1, 2, 3, 4, 34, 1, 1, 1, 3, 4, 5, 5, 4, 2, 4, 5, 2];// 声明一个空数组var b = [];for (var i = 0; i < a.length; i++) { var status = 0; for (var v =原创 2020-09-09 22:54:33 · 192 阅读 · 0 评论 -
学会console调试,会让你少走很多弯路;
1、 console.log(输出的日志)有五个占位符%s 字符串%d 或 %i 整数%f 浮点数%o 对象的链接%c CSS格式字符但是和console.log()很像的还有俩,一个是console.info(),一个是console.debug()。其实这个三个功能都是一样的,只不过有些区别 console.info("我是console.info()打印出来的"); console.debug("console.debug()打印出来的");两者输出的结果原创 2020-09-06 23:24:35 · 826 阅读 · 0 评论 -
javascript中的继承详解:
1 原型链继承父类的实例作为子类的原型function Woman(){ }Woman.prototype= new People();Woman.prototype.name = 'haixia';let womanObj = new Woman();优点:简单易于实现,父类的新增的实例与属性子类都能访问缺点:可以在子类中增加实例属性,如果要新增加原型属性和方法需要在new 父类构造函数的后面无法实现多继承创建子类实例时,不能向父类构造函数中传参数2.借用构造函数继承(伪造对象、经原创 2020-09-02 23:14:21 · 107 阅读 · 0 评论 -
javascript 星星点灯
<style>*{margin: 0;padding: 0;}ul,li{list-style: none;}#star{width: 800px;margin: 50px auto;}#star p{float: left;}.ss{float: left;}.ss li{position: relative;float: left;widt...原创 2020-03-14 22:25:17 · 217 阅读 · 0 评论 -
javascrpt 贪吃蛇:
css code: <style> body { margin: 0%; padding: 0%; } .map { width: 900px; height: 600px; background-color: ...原创 2020-03-13 18:56:50 · 171 阅读 · 0 评论 -
javascript错误处理机制
本章要点 Error 实例对象 原生错误类型 SyntaxError 对象 ReferenceError 对象 RangeError 对象 TypeError 对象 URIError 对象 EvalError 对象 总结 自定义错误 throw 语句 ...原创 2020-03-13 17:52:26 · 105 阅读 · 0 评论