前端ES6总结(面海题+答案)

1.声明变量:

let 不允许在相同作用域内,重复声明同一个变量。
const 声明一个只读的常量。一旦声明,常量的值就不能改变。

*存在一个特殊情况,const声明的引用类型的类型,例如对象,对象的值是可以改变的,因为const声明的常量保存的是对象引用的地址。*

2.变量解构赋值:

默认值 默认值可以引用解构赋值的其他变量,但该变量必须已经声明。
对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。
解构失败,变量的值等于undefined
字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象

let [a,b] = 'ha'
// a = h , b = a

同时可以获得字符串的长度:

let {length:len} = '12121'
// len = 5

函数参数的解构也可以使用默认值。

解构赋值的用途
  1. 交换变量的值
  2. 从函数返回多个值
  3. 函数参数的定义
  4. 提取JOSN数据
  5. 函数参数的默认值
  6. 遍历Map结构
  7. 输入模块的指定方法

3.箭头函数:

箭头函数的分类:

  1. 单语句,单参数
    例如:a=>console.log(a)
  2. 单语句,多参数
    例如:(a,b)=>console.log(a+b)
  3. 多语句,多参数.
    例如:(a,b)=>{
    let sum = 0;
    sum = a + b;
    return sum;
    }
  • 解决问题:
    1.缩减代码
    2.改变 this 指向,是定义时所在的对象,而不是使用时所在的对象。而且不可改变,不能使用call和bind改变箭头函数的this指向。

4.Symbol

S6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)

5.forEach()

forEach(): 没有返回值,本质上等同于 for 循环,对每一项执行 function 函数。即map是返回一个新数组,原数组不变,forEach 是改变原数组。

6.Rest:

Rest 参数接受函数的多余参数,组成一个数组,放在形参的rest参数只能写在最后,前面用…标识Spread操作符(…),也称作展开操作符,作用是将可迭代的(Iterable)对象进行展开。

7.模板字符串:

模板字符串使用反引号 () 来代替普通字符串中的用双引号和单引号。模板字符串可以包含特定语法(${})的占位符。占位符中的表达式和周围的文本会一起传递给一个默认函数,该函数负责将所有的部分连接起来,如果一个模板字符串由表达式开头,则该字符串被称为带标签的模板字符串,该表达式通常是一个函数,它会在模板字符串处理后被调用,在输出最终结果前,你都可以通过该函数来对模板字符串进行操作处理。在模版字符串内使用反引号(`)时,需要在它前面加转义符(\)。

8.class:

S6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。基本上,ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。

9.class继承:

Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多。子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类自己的this对象,必须通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后对其加工,加上子类自己的实例属性和方法,如果不调用super方法,子类就得不到this对象。

10.super关键字

super这个关键字,既可以当作函数使用,也可以当作对象使用。在这两种情况下,它的用法完全不同.
第一种情况,super作为函数调用时,代表父类的构造函数。ES6 要求,子类的构造函数必须执行一次super函数。
第二种情况,super作为对象时,在普通方法中,指向父类的原型对象;在静态方法中,指向父类。

11.类的prototype属性和_proto_属性

子类的_prop_属性,表示构造函数的继承,总是指向父类。
子类prototype属性的_prop_属性,表示方法的继承,总是指向父类的prototype属性。

12.Typeof

typeof运算符用于判断对象的类型,但是对于一些创建的对象,它们都会返回’object’,有时我们需要判断该实例是否为某个对象的实例,那么这个时候需要用到instanceof运算符,后续记录instanceof运算符的相关用法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值