Day 06 Es6补充

7.说⼀下箭头函数与普通函数的区别?

在 es6 中,提供了⼀种简洁的函数写法,我们称作“箭头函数”。
写法:函数名=(形参)=>{……} 当函数体中只有⼀个表达式时,{}和 return 可以省略,当函数体中形参只有⼀个时,()可以省略。
特点:箭头函数中的 this 始终指向箭头函数定义时的离 this 最近的⼀个函数,如果没有最近的函数就指向 window。
区别:

  1. 箭头函数不能⽤于构造函数,不能使⽤ new** ⽽普通函数可以
  2. 在普通函数中,this 总是指向调⽤它的对象,如果⽤作构造函数,this 指向创建的对象实例,
    ⽽箭头函数指向箭头函数定义时的离 this 最近的⼀个函数,如果没有最近的函数就指向
    window。

3.8 说⼀下for in 与for of的区别?

  • For in 可以遍历对象 ⽽ for of 遍历对象会报错
  • for in 遍历数组得到的数组的下表 ⽽ for of 遍历得到的时候数组⾥⾯的每⼀个元素

3.9 说⼀下es6如何实现类以及如何实现类的继承?

es6提供了类的这个概念,在es5中是没有类的这个概念,如果想在es5中实现⼀个类型,我们只能构造
函数的⽅式去创建⼀个类,⽽es6给我们提供⼀个更⽅便 的⽅.法,那就是class,这个class理解为是构造
函数的语法糖.
我们创建⼀个类只需要⽤过关键词class去声明就可以了 , 他的调⽤⽅式和构造函数的调⽤⽅式是
⼀样的
通过es6的类还给我们提供⼀个extends这样的⼀个关键字,来实现继承

3.10 说⼀下数组去重的⽅法有哪些?es6如何实现数组去重?

indexof
双层for循环
set⽅法

3.11 说⼀下如何检测对象⾥⾯有没有属性(或者如何检测⼀个对象是否为空)?以及如何获取对象⾥⾯所有的属性名?

通过object.keys⽅法, 返回值数组,数组⾥⾯包含的是所有属性名
Object.hasOwnProperty()
使⽤for in的⽅式

3.12 如何将多个数组合并成为⼀个数组?

es5 :
concat
for循环
Es6:
扩展运算符
map⽅法

3.13 说⼀下forEach、map、filter、reduce、some、every等⽅法的作⽤?

reduce 遍历数据求和。
some 遍历数组每⼀项,有⼀项返回true,则停⽌遍历,结果返回true。不改变原数组遍历数组每⼀项,每⼀项返回true,则最终结果为true。当任何⼀项返回false时,停⽌遍历,返回
false。不改变原数组
forEach() ⽅法: 循环原来的数组
map() ⽅法: 循环原数组并映射⼀个新数组出来
filter() ⽅法: 过滤不需要的数组元素

(扩展扩展)es5 的面向对象和 es6 的面向对象

es5 的面向对象是通过 new 一个构造函数实现的
es6 的面向对象是通过 class 实现的 es6 的 class 就是面向对象的语法糖(实现同样的功能 但是代码更少 更加简洁)

面向对象是一个概念或者编程思想,面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式

(在 js 中一切皆对象
比如说数组 object number string 等等 这些都是内置对象

那么怎么自定义对象
es5 的时候没有像后台语言一样的 class 这个概念 所以我们用函数当作构造函数来创建对象)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值