前端旧约

今天做别人不愿意做的事, 明天做别人不能做的事

随笔分类 -  JavaScript

JS 中为什么要有 Iterator,JS 中数组,对象,Map,Set遍历的推荐方法
摘要:JavaScript 原有的表示 “集合 ”的数据结构主要是数组( Array )和对象( Object), ES6 又添加了 Map 和 Set。 这样就有了 4 种数据集合,用户还可以组合使用它们,定义自己的数据结 构,比如数组的成员是 Map, Map 的成员是对象 。 这样就需要一种统一 的 阅读全文

posted @ 2022-10-25 11:42 前端旧约 阅读(516) 评论(0) 推荐(0)

判断两个对象的内容是否相等
摘要:由于在做 "键盘导航组件" 的项目时,有这样一个需求,当用户传入按键字母和网址的映射时,如果和 localStorage 中的不一样那么就用 localStorage 中存储的,这个时候就需要比较两个对象的内容是否相等,但是在 JS 中对象是一种引用类型. 即使两个对象的内容完全相同,因为它们的地址 阅读全文

posted @ 2020-05-02 23:05 前端旧约 阅读(5439) 评论(0) 推荐(0)

再谈闭包
摘要:闭包的定义 在 "简单理解JS中的闭包" 通过阮一峰老师关于闭包的文章写过一次对闭包的理解,这篇文章比较简洁地再谈一次闭包。 闭包指的是能够访问另一个函数作用域中变量的函数。 闭包的作用 1)闭包使得我们可以在函数的外部访问函数内部的变量 如上面的代码所示,在函数外部我们本来是不能访问 fn1 内部 阅读全文

posted @ 2020-05-02 15:56 前端旧约 阅读(612) 评论(2) 推荐(0)

浅析 JS 中的作用域链
摘要:作用域链的形成 在 JS 中每个函数都有自己的执行环境,而每个执行环境都有一个与之对应的变量对象。例如: 你就可以将 fn 当做函数 fn 执行环境对应的一个变量对象,这个变量对象我们通过代码是无法访问到的,但是 JS 引擎在解析代码时会用到它。 思考为什么上面函数中的 fn 运行后输出 1,可能大 阅读全文

posted @ 2020-05-01 22:41 前端旧约 阅读(363) 评论(0) 推荐(0)

聊一聊JSONP和图像Ping的区别
摘要:JSONP 在讲 JSONP 之前需要再来回顾一下在页面上使用 script 引入外部的 js 文件时到底引入了什么? 先建立一个 index.js 文件。 再建立一个 index.html 文件。 上面的 等价于 现在再来看 JSONP 就比较好理解了。 假设我现在需要向 www.abc.com 阅读全文

posted @ 2020-04-25 23:21 前端旧约 阅读(492) 评论(0) 推荐(1)

原型链继承的问题及解决方法
摘要:原型链继承的问题 如果单独只使用原型链继承主要有以下两个问题。 1)包含引用类型值的原型属性会被所有的实例共享 下面中父类有一个 colors 属性是一个引用类型,每个子类实例对它的修改,其它子类的实例会跟着修改。 2)无法在不影响其它实例的前提下向父类传递参数 在只使用原型链的前提下传递参数,主要 阅读全文

posted @ 2020-04-24 17:11 前端旧约 阅读(1740) 评论(0) 推荐(1)

JS 中的自定义事件和模拟事件
摘要:在 JS 中模拟事件指的是模拟 JS 中定义的一些事件,例如点击事件,键盘事件等。 自定义事件指的是创建一个自定义的,JS 中之前没有的事件。 接下来分别说一下创建这两种事件的方法。 创建自定义事件 创建自定义事件可以使用 Event 和 CustomEvent 两种方法,接下来分别做一下介绍。 1 阅读全文

posted @ 2020-04-21 11:39 前端旧约 阅读(2010) 评论(0) 推荐(0)

简单理解深拷贝和浅拷贝
摘要:在 JS 中数据类型分为值类型和引用类型,对于值类型,变量中存放的是具体的值,而对于引用类型,变量中存放的是地址。 对于值类型: 输出结果是 3. 对于引用类型: 输出结果:20. 上述变量在内存中的存储: 在程序运行过程中,当一个函数被调用时会把调用时的位置等信息保存在堆栈中,这就是通常说的保护现 阅读全文

posted @ 2020-04-17 17:19 前端旧约 阅读(474) 评论(0) 推荐(0)

JS 中 foreach 和 map 方法的区别
摘要:map方法: map对一个数组对象进行操作时,一般是生成一个新的数组,可以在map中限制生成新数组的条件,有返回值。 forEach方法: forEach方法也是对数组进行遍历,没有返回值。 示例 将 arr 数组中的每个元素翻倍。 运行结果: 阅读全文

posted @ 2020-04-02 15:31 前端旧约 阅读(446) 评论(0) 推荐(0)

JS 中检测数组的四种方法
摘要:今天和大家分享一下 JS 中检测是不是数组的四种方法,虽然篇幅不长,不过方法应该算是比较全面了。 1. instanceof 方法 instanceof 用于检测一个对象是不是某个类的实例,数组也是一种对象所以也可以利用 instaceof 来进行判断。 let arr = [1, 2, 3]; c 阅读全文

posted @ 2020-01-10 20:35 前端旧约 阅读(3367) 评论(2) 推荐(1)

简单聊一聊JS中的循环引用及问题
摘要:本文主要从 JS 中为什么会出现循环引用,垃圾回收策略中引用计数为什么有很大的问题,以及循环引用时的对象在使用 JSON.stringify 时为什么会报错,怎样解决这个问题简单谈谈自己的一些理解。 1. 什么是循环引用 当对象 1 中的某个属性指向对象 2,对象 2 中的某个属性指向对象 1 就会 阅读全文

posted @ 2020-01-09 21:04 前端旧约 阅读(16021) 评论(3) 推荐(2)

简单理解JS中的闭包
摘要:原文链接: http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html 注:本文是阮一峰老师写的,通俗易懂,理解闭包很好的文章。我在此基础上加了自己的一些理解,阮一峰老师由于最后两道思考题没有给出答案,所以在本文中 阅读全文

posted @ 2020-01-08 11:00 前端旧约 阅读(620) 评论(0) 推荐(0)

从两个角度理解为什么 JS 中没有函数重载
摘要:函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表(参数个数、类型、顺序)的函数,这组函数被称为重载函数。重载函数通常用来声明一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。 但是在 JS 如果不通过一些方法是无法实现重载的,可以从以 阅读全文

posted @ 2020-01-06 11:38 前端旧约 阅读(723) 评论(8) 推荐(1)

图文结合深入理解 JS 中的 this 值
摘要:图文结合深入理解 JS 中的 this 值 在 中最常见的莫过于函数了,在函数(方法)中 的出现频率特别高,那么 到底是什么呢,今天就和大家一起学习总结一下 中的 。 1. 初探this 在 中是一个关键字,不是变量也不是属性名, 中不允许给this赋值。 它是函数运行时,在函数体内部自动生成的一个 阅读全文

posted @ 2019-12-22 21:12 前端旧约 阅读(613) 评论(0) 推荐(2)

聊一聊 JS 输出为 [object object] 是怎么回事?
摘要:今天在学习ES6中的 Symbol 数据类型时,在写demo时控制台输出为 Symbol[object object] ,当时有点疑惑,查阅了相关资料后搞清楚了其中的原因。 在解释之前,由于有些小伙伴可能还没有接触过ES6,所以先说一下上面用到的ES6的一些特性: const: 声明一个常量 Sym 阅读全文

posted @ 2019-12-22 21:02 前端旧约 阅读(15637) 评论(0) 推荐(2)

导航