前端面试-说说你常用的ES6新特性

mac2025-12-10  3

ES6新特性

1.变量声明const 和 let 2.字符串模板 3.箭头函数 4.类的引入 5.参数默认值,不定参数,拓展参数 6.import和 export 7.promise、async/await介绍 8.set和map 9.for-in 和 for-of

1.变量声明 const 和 let

作用: 1.防止全局变量泄露 2.防止变量提升带来的覆盖问题

let:作用类似于var,用来声明变量,但是所声明的变量,只在let命令所在的代码块内有效

const:声明常量,一旦声明不可修改,不可重复声明

对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址),不能保证指向的数据结构不可变。

如果要保证指向的数据结构不可变,需要自行封装。

2.字符串模板

在一些函数中我们经常会用到字符串的拼接 在ES6中可以使用 新的语法 ${NAME} 并将它放到反引号中即可实现拼接

3.箭头函数

箭头函数与ES5中的普通函数最大的区别就是改变了函数中this的指向

普通函数this指向函数体前面的事件对象箭头函数则指向函数上下文中this所指的对象

4.类的引入

在ES6 中引入了类的概念,创造一个类 首先注意一点:class没有预解析,实例化一定要放在下面 在类中可以通过constructor构造函数,new一个实例的时候,构造函数自动执行 在class中,extends就代表继承的意思,super就是指向父类的构造函数,指代了整个prototype对象或者proto指针指向对象。

5.参数默认值,不定参数,拓展参数

在ES6中可以直接在函数声明的过程中设置默认参数

var link = function(height = 50, color = 'red', url = 'http://azat.co') { ... }

6.import和 export

export 可以用来暴露方法和变量

import {port, getAccounts} from 'module'; console.log(port); // 3000

import 需要用 import {name} from 'xxx’语法导入

import * as service from 'module'; console.log(service.port); // 3000

7.promise、async/await介绍

ES6中出现了promise异步函数

var wait1000 = new Promise((resolve, reject)=> { setTimeout(resolve, 1000); }).then(()=> { console.log('Yay!'); });

其中,resolve代表执行回调成功的函数 而reject代表执行回调失败的函数

8.set和map

set中元素不允许重复 set可用作数组去重 new Set([11,22,33,22]) map类似对象,但是它的 key可以为任意数据类型

9.for-in 和 for-of

for in 取 key;for of 取 valuefor of只能用于数组遍历,for in 还可以用于对象属性的遍历
最新回复(0)