es6知识点
1.谈谈你对 ES6 的理解,为什么要学习es6?ES6 是 2015 年发布的 JavaScript 第六版标准主要解决 ES5 的语法缺陷如作用域混乱、字符串处理繁琐、模块化困难等引入多项新特性以提升代码简洁性、规范性与可维护性。2.es6和es5的区别(请写出5条)变量定义上ES6 新增 let 和 const字符串拼接引入了新的模板字符串拼接函数定义上ES6 新增无需 function 的箭头函数循环上ES6 引入 for…of 循环迭代可迭代对象数据类型上 ES6 新增基本数据类型 symbol以支持唯一值。解构赋值快速从数组 / 对象中提取值。扩展运算符可将可迭代对象数组、字符串等展开为独立元素或收集剩余值为数组3.ES和js有什么关系?“ES” 通常指的是 ECMAScript它是 JavaScript 的规范ECMAScript 是一种由欧洲计算机制造商协会ECMA通过的脚本语言的标准其主要是用于网络浏览器以提供交互式的网页内容。4.解构赋值及其原理?解构赋值是 JS 中允许从数组或对象提取数据赋值给变量的语法能简洁访问复杂数据、减少冗余代码原理:依赖模式匹配当左侧变量模式与右侧数据结构匹配时引擎通过迭代或属性访问解包数据并完成赋值。5.var let const 的区别和使用场景?区别var 是函数作用域允许重复声明和重赋值有变量提升let 是块作用域不允许重复声明但可重赋值无变量提升const 是块作用域不允许重复声明和重赋值需声明时初始化。使用场景var用于声明任意类型且无需块级隔离的变量let 用于声明普通类型 const 用于声明对象数组。可以写变量算数运算函数调用三元表达式对象属性。6.什么是模板字符串? 比普通字符串的好处模板字符串是 ES6 引入的字符串语法以反引号包裹内容核心优势在于无需传统字符串拼接可通过${JS表达式}直接嵌入变量或函数结果还能直接包含多行文本而不用\n等转义字符整体大幅简化了字符串操作让代码更易读、更易维护。7.箭头函数和普通函数有什么区别箭头函数与普通函数在多个方面存在差异箭头函数以简洁的箭头语法定义均为匿名函数不能作为构造函数使用没有自身的 this、arguments类数组对象 对象和原型普通函数用 function 定义可匿名也可具名能作为构造函数创建实例其 this 指向调用者有 arguments类数组对象 对象和原型。8.什么是扩展运算符?有什么使用场景?扩展运算符…可将可迭代对象数组、字符串等展开为独立元素或收集剩余值为数组。场景数组合并/复制、对象合并/复制、函数参数展开、收集剩余参数等。9.什么是symbol?定义Symbol 是 ES6 新增的一种数据类型被划分到基本数据类型中用于表示独一无二的值。使用场景作为对象唯一属性键避免命名冲突、模拟私有属性及作为唯一标识。10.Set和Map有什么相同和不同之处?相同点均存储唯一元素支持迭代器访问。不同点Set存唯一值用add()添加无直接获取单元素方法Map存键值对用set()添加可通过get()取值。场景Set去重、存独立唯一值Map键值映射如配置表、缓存。11.如何声明一个类?类如何继承?通过 class 关键字声明类使用 extends 关键字实现类的继承12.模块化有什么好处?模块化开发优势显著模块独立可减少修改时的错误传播新增功能无需重构仅需加模块能支持并行开发缩短周期通用模块可跨项目复用降成本还以分治思想简化问题、明确团队分工既降低开发复杂度又减少代码冲突提升协作效率。13.什么是Proxy?创建对象代理可拦截对象操作如属性访问并自定义处理接收目标对象和含 “捕获器” 的处理程序用于数据验证、日志等。14.什么是Promise?Promise 语法上是一个构造函数用来封装异步操作并可以获取其成功或失败的结果常用于网络请求定时器操作异步操作等Promise.prototype.then 方法用于接收成功Promise.prototype.catch 方法用于接收失败Proxy与Promise区别Proxy 用于数据响应式、权限控制Promise 用于异步串联、并行任务处理15.什么是封装为什么要封装隐藏对象内部细节仅对外暴露公共接口可简化维护改内部不影响调用方、贴合认知属性与函数关联成对象、增强安全限制属性访问。