随笔分类 -  javaScript

摘要:关于直接赋值、浅拷贝、深拷贝的区别和图示,之前写json的文章里有介绍,可以参考这一篇 json虽然简单,但这些细节你未必知道 拷贝第一层 首先,我们定义一个最简单的浅拷贝,只要能够保存原对象的第一层数据就行~ function deepClone(value) { const newObj = { 阅读全文
posted @ 2022-02-19 20:57 一颗冰淇淋 阅读(268) 评论(0) 推荐(0)
摘要:节流定义 某些频繁操作的事件会影响性能,"节流"用来控制响应的时间间隔,当事件触发的时候,相对应的函数并不会立即触发,而是会按照特定的时间间隔,每当到了执行的响应间隔时,才会执行响应函数。 节流案例 网络游戏中的"飞机大战",键盘按键可以用于发射子弹,快速不停的敲击键盘,飞机不会不停的发射,而是以一 阅读全文
posted @ 2022-02-12 21:19 一颗冰淇淋 阅读(144) 评论(0) 推荐(0)
摘要:防抖定义 某些频繁操作的事件会影响性能,"防抖"可以用来减少事件的响应频次,当事件触发的时候,相对应的函数并不会立即触发,而是会进行等待,只有等待了一段时间之后,事件停止触发,此时才会执行响应函数。 防抖案例 比如屏幕设定了1分钟的熄屏时间,如果用户在这1分钟之内,没有对电脑进行任何的操作,那么电脑 阅读全文
posted @ 2022-02-06 21:29 一颗冰淇淋 阅读(288) 评论(0) 推荐(0)
摘要:浏览器架构 JavaScript运行在浏览器,BOM就是连接JavaScript代码和浏览器的桥梁,而DOM就是用来操作各种标签元素的。 BOM包括 window、history、location、document ... DOM包括 Document(整个文档)、Element(标签元素)、Cha 阅读全文
posted @ 2022-01-29 21:21 一颗冰淇淋 阅读(170) 评论(0) 推荐(0)
摘要:webStorage 基本概念 webStorage提供了两种存储方式,localStorage和sessionStorage。 localStorage是持久化存储,不主动删除存储的内容会永久存在 sessionStorage为会话级存储,关闭浏览器则销毁 具体的区别在于 关闭网页后重新打开,lo 阅读全文
posted @ 2022-01-22 21:15 一颗冰淇淋 阅读(607) 评论(0) 推荐(0)
摘要:基本介绍 JSON的全称是JavaScript Object Notation,它并不是编程语言,而是一种可以在服务器和客户端之间传输的数据格式,本来是JavaScript的子集,但现在已独立存在于各种编程语言中。 它有以下使用场景 网络数据传递时,比如http请求中参数 项目里某些配置文件,比如p 阅读全文
posted @ 2022-01-15 21:47 一颗冰淇淋 阅读(347) 评论(0) 推荐(0)
摘要:在javascript中,开发遇到的项目报错,很多时候都是通过 Error 这个类来展示的,清楚Error的类型可以更好定位项目中的问题 Error的类型 Error Error是所有其它错误的父类,我们抛出异常时,不指定抛出的异常类型时,就用直接使用 Error ReferenceError 表示 阅读全文
posted @ 2022-01-08 21:21 一颗冰淇淋 阅读(164) 评论(0) 推荐(0)
摘要:async 关键字用于声明异步函数,await 用于在async函数中将异步代码变为同步,阻塞代码的执行 对于promise和generator不熟悉的朋友可以移步看看这些文章 Promise的理解与使用(一) Promise的理解和使用(二) 手写promise之分步解析 javascript事件 阅读全文
posted @ 2022-01-01 20:27 一颗冰淇淋 阅读(517) 评论(0) 推荐(0)
摘要:generator是一种特殊的iterator,generator可以替代iterator实现,使代码更为简洁 什么是iterator iterator叫做迭代器,是用来帮助某个数据结构进行遍历的对象,这个对象需要符合迭代器协议(iterator protocol)。 迭代器协议要求实现next方法 阅读全文
posted @ 2021-12-25 21:51 一颗冰淇淋 阅读(237) 评论(0) 推荐(0)
摘要:promise是es6推出适用于异步请求的构造函数,帮助解决回调地狱的问题,以下内容将自定义实现promise,只包括基本使用,所以一些边界情况考虑没有在内。 如果对promise用法还不熟悉的朋友可移步 Promise的理解与使用(一) Promise的理解和使用(二) executor 首先建立 阅读全文
posted @ 2021-12-19 22:02 一颗冰淇淋 阅读(123) 评论(0) 推荐(0)
摘要:vue3通过Proxy+Reflect实现响应式,vue2通过defineProperty来实现 Proxy Proxy是什么 Proxy是ES6中增加的类,表示代理。 如果我们想要监听对象的操作过程,可以先创建一个代理对象,之后所有对于对象的操作,都由代理对象来完成,代理对象可以监听到我们对于原对 阅读全文
posted @ 2021-12-11 21:53 一颗冰淇淋 阅读(290) 评论(0) 推荐(0)
摘要:ES6也称为ES2015,于2015年发布,此后每年都有新增一些属性,分别命名为ES7~12,发布的年份分别对应2016年到2021年 ES7 includes方法 数组中新增了includes方法,用来判断数组中是否存在某一元素,在此之前进行这样的判断是使用indexOf判断下标值,小于0时则代表 阅读全文
posted @ 2021-12-04 21:58 一颗冰淇淋 阅读(154) 评论(0) 推荐(0)
摘要:ES6,也称ESMAScript2015,这个版本增加了很多好用的特性 变量声明 ES6之前用var来定义变量,ES6增加了两个变量声明的方式,分别为const和let,const用来定义常量,let用于定义变量,弥补了使用var来定义的漏洞。 var 有变量提升,在全局/函数中定义的变量都会被提升 阅读全文
posted @ 2021-11-28 22:07 一颗冰淇淋 阅读(237) 评论(0) 推荐(0)
摘要:定义 类是构造函数、原型链的语法糖。 定义类有两种方式 class Student { } var Student = class { } 某些浏览器可能无法解析es6及以上的语法,这时候需要通过babel将代码解析成浏览器可识别的语法,定义类的语法通过babel编译之后就是通过function定义 阅读全文
posted @ 2021-11-20 21:17 一颗冰淇淋 阅读(218) 评论(0) 推荐(0)
摘要:继承是javascript中实现代码复用的一种方式,也能绑定对象或者函数之间的关系 为什么要继承 比如以下代码,Person、Student和Teacher构造函数,可以发现他们有一些特征 Person和Student都有姓名、年龄的属性和吃的方法,但Student还有学号、分数的属性和学习的方法 阅读全文
posted @ 2021-11-14 22:38 一颗冰淇淋 阅读(1066) 评论(0) 推荐(0)
摘要:javascript中对象由key和value组成,key是标识符,value可以为任意类型 创建对象的方式 1、通过构造函数 var obj = new Object() obj.name = 'alice' obj.age = 18 2、通过字面量 var obj = { name: 'alic 阅读全文
posted @ 2021-11-07 22:14 一颗冰淇淋 阅读(87) 评论(0) 推荐(0)
摘要:call、bind、apply都是Function原型上的方法,用于改变this的指向 自定义函数 js中的call、bind、apply是用c++代码实现的,我们这里使用js代码做一个模式,没有把所有的边界情况考虑进来,仅做一个简单的实现,三个函数在使用的时候有一些需要注意的地方,在定义的时候需要 阅读全文
posted @ 2021-10-31 21:11 一颗冰淇淋 阅读(103) 评论(0) 推荐(0)
摘要:函数是javascript中非常重要的一部分,用途也非常的多,可作为参数、返回值、回调等等,下面有一些函数式编程的重要概念和定义 纯函数 纯函数属于程序设计的名词,其它语言中也是存在的,而在javascript中,符合以下规则即为纯函数。 函数有相同的输入,必定有相同的输出 函数的输出仅与输入有关, 阅读全文
posted @ 2021-10-24 20:34 一颗冰淇淋 阅读(1277) 评论(0) 推荐(0)
摘要:为什么要使用this 在javascript中,this可谓是无处不在,它可以用来指向某些元素、对象,在合适的地方使用this,能让我们减少无用代码的编写 var user = { name: "aclie", sing: function () { console.log(user.name +  阅读全文
posted @ 2021-10-17 20:16 一颗冰淇淋 阅读(587) 评论(0) 推荐(0)
摘要:javacript中的内存管理 javascript中不需要我们手动去分配内存,当我们创建变量的时候,会自动给我们分配内存。 创建基本数据类型时,会在栈内存中开辟空间存放变量 创建引用数据类型时,会在堆内存中开辟空间保存引用数据类型,并将堆内存中该数据的指针返回供变量引用 var name = "a 阅读全文
posted @ 2021-10-10 19:28 一颗冰淇淋 阅读(200) 评论(0) 推荐(0)