js
前端的我
这个作者很懒,什么都没留下…
展开
-
浅谈继承的7种方式
浅谈继承的4种方式最近总结了一下继承的4种方式,主要包括:原型链继承、构造函数继承、组合继承、以及class类继承(ES6提出)。1,原型链继承继承的本质:子类的原型等于父类的实例。 //父类:人 function Person1 () { this.head = '我是父类person1'; } //子类:学生,继承了“人”这个类 function Stude...原创 2019-06-27 23:15:04 · 371 阅读 · 0 评论 -
ES6-iterator接口
1,什么是iterator1)出现的原因:处理不同的数据结构js中主要的数据集合是数组和对象,ES6出现了map和set数据结构,即共4种。用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是Map,Map的成员是对象。这样就需要一种统一的接口机制,来处理所有不同的数据结构。2)本质:是一种接口。遍历器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一...原创 2019-05-25 17:43:03 · 519 阅读 · 0 评论 -
let、const、var 的区别有哪些?
在ES5中,声明变量只有var和function两种形式。但是因为var声明的变量会有一定的缺点(内层变量可能覆盖外层变量的问题以及用来计数的循环变量泄露为全局变量,下面会有详细的介绍),ES6提出了使用let和const声明变量,下面就来看看他们之间的区别。1,什么时候提出的?var是ES5提出的,let和const是ES6提出的。2,是否存在变量提升?var声明的变量存在变量提升...原创 2019-05-30 15:06:00 · 9665 阅读 · 0 评论 -
执行上下文以及作用域的理解
(一)执行上下文可以理解成,执行JavaScript代码的一种环境。(个人理解为任何事情的发生都是在一定环境下发生的,执行js代码也是一样,必然是在某种环境下进行。)上下文分为以下3类:1)全局执行上下文:指的是浏览器中的全局对象window对象,只有这一个。在严格模式下,this值为undifined,非严格模式下,this值即为window对象。执行代码时,最先执行全局执行上下文终的...原创 2019-05-28 17:25:45 · 1146 阅读 · 0 评论 -
浅拷贝与深拷贝的区别。如何实现深拷贝。
关于拷贝应该是大家面试中经常被问到的问题,特此总结一下,为以后积累经验。1,数据类型巩固拷贝之前必须先回顾下数据的分类,知道其存储的位置。基本数据类型:1)分类 (String Number Boolean Undefined Null Symbol)2)特点(数据存在栈内存中)引用数据类型:1)分类 (Object)2)特点(栈内存中存的是指向堆内存中数据对象的一个地址值,...原创 2019-05-31 17:43:52 · 254 阅读 · 0 评论 -
JavaScript异步加载的方式有哪些
在传统的做法中,所有的script元素均应该放在页面的head元素中。第一种位置中,把script放在了head中,这也是传统的做法。目的是把所有外部文件(css文件和js文件)的引用都放在相同的地方,可是,放在这里,意味着必须得全部的js代码都被下载解析和执行完成以后,才开始呈现页面的内容(浏览器遇到body标签才开始呈现内容)。如果js代码很多,无疑会导致页面呈现的内容出现延迟,用户体验性...原创 2019-06-12 22:25:58 · 281 阅读 · 0 评论 -
如何实现一个数组扁平化函数
1,递归function flattenDeep(arr){ let deepArr = [] arr.forEach(element => { if(Array.isArray(element)){ deepArr = deepArr.concat(flattenDeep(element)) }else{ ...原创 2019-06-16 16:37:56 · 888 阅读 · 0 评论