摘要:
什么是set? ES6新增的数据结构,类似于数组,但它的一大特性就是所有元素都是唯一的,没有重复。很显然,它可以做到数组元素的去重:方法:属性:应用场景:1、字符串去重2、数组去重3、集合数组4、映射集合注意事项:1、遍历顺序:插入顺序 2、没有键只有值,可认为键和值两值相等 3、添加多个NaN时,只会存在一个NaN4、添加相同的对象时,会认为是不同的对象 5、添加值时不会发生类型转换(5 !==... 阅读全文
摘要:
1、数值扩展1、从ES6之后,使用前缀0b代表二进制数,使用0o代表八进制数,转换成十进制用Number()函数,在非严格模式下,0o011 011返回为true,在严格模式下会报错。2、新增的Number方法:3、新增的Math方法:4、左移运算符<< 和 右移运算符 >>左移运算符<<: 在数字 阅读全文
摘要:
1、promise的起源 在之前,我们处理异步网络请求的时候,往往会采用这样的写法:再复杂一点,我们需要在请求完第一个api后,再去请求第二个接口,那么就变成这样了:基于此,在需求增加的情况下,我们很可能会面临一场灾难性的到来--回调地狱。造成的后果是:1、代码庞杂臃肿,可读性极差2、耦合度过高,难 阅读全文
摘要:
共同点:在不影响客户体验的前提下,将频繁的回调函数,进行次数缩减.避免大量计算导致的页面卡顿.差异:防抖是将多次执行变为最后一次执行 节流是将多次执行变为在规定时间内只执行一次1、防抖什么是防抖呢?触发事件后在规定时间内回调函数只能执行一次,如果在规定时间内又触发了该事件,则会重新开始算规定时间。具 阅读全文
摘要:
首先,它们是什么呢?我们先看call跟apply: Function.prototype的方法有apply跟call,所以每个函数都包含call、apply属性。 共同点:都可以改变this的指向(this 永远指向最后调用它的那个对象) 差异:接收函数参数的方式不同 call: 第一个值是让t函数 阅读全文
摘要:
什么是作用域?可访问变量,对象,函数的集合。 具体化:分为全局作用域跟函数作用域 1、所有的全局作用域都是互通的 2、var声明的变量会挂载到window的属性里面,而let、const则不会 3、函数都有自己独立的作用域,外部不能访问,外层函数嵌套内层函数,作用域是包含关系 作用域的规则: 1、搜 阅读全文
摘要:
什么闭包? 有权访问另一个函数作用域中的变量的函数。 具体化:外部函数调用之后其变量对象本应该被销毁,但闭包的存在使我们仍然可以访问外部函数的变量对象。 个人理解: 我觉得《你不知道的JavaScript》中对闭包的描述比较确切:当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前 阅读全文
摘要:
1.对象的创建:缺点:当我们想创建多个面向对象的时候,重复代码过多,需要封装,所以有了工厂方法。2、工厂方式(流水线式地创建对象)缺点:无法识别创建的对象的类型。因为全部都是Object,没有区分度,不像Date、Array等,因此出现了构造函数模式。3、构造函数模式1。首字母大写,区别于普通的函数 阅读全文
摘要:
目录: 1、变量声明:var 、let 与const 2、解构赋值 3、扩展运算符... 4、默认值和默认函数 5、箭头函数 1、var 、let 与const ES5中,使用var关键词进行变量的声明,存在声明的变量或函数都将提升到函数的最顶部(作用域提升),导致可以在使用变量之后再声明变量,会导 阅读全文
摘要:
什么是事件委托?事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。 具体化: 快递问题 有三个同事预计会在周一收到快递。为签收快递,有两种办法:一是三个人在公司门口等快递;二是委托给前台MM代为签收。现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为 阅读全文