ES6新特性与JavaScript面试重点:箭头函数、模块化与Vue的v-for

需积分: 8 0 下载量 97 浏览量 更新于2024-08-04 收藏 8KB MD 举报
“张哥提问常见面试题(4).md” 这篇文档包含了JavaScript ES6新特性和Vue.js开发中的常见问题。以下是详细解释: 1. **ES6新增特性**: - **块级作用域**:通过`let`和`const`关键字,ES6引入了块级作用域,解决了之前只有函数作用域和全局作用域的问题。 - **类(class)**:虽然JavaScript是基于原型的,但ES6引入了类的语法糖,使面向对象编程更加简洁。 - **Symbol**:一种新的基本数据类型,用于创建唯一的标识符,防止命名冲突。 - **解构赋值**:允许从数组或对象中提取值,直接赋值给变量。 - **函数参数默认值**:在函数定义时可以设定默认参数值,当调用时参数未传入,将使用默认值。 - **rest参数**:允许将不定数量的参数作为数组接收,用`...`表示。 - **箭头函数**:更简洁的函数定义方式,其`this`值继承自父作用域。 - **数组API**:新增了如`isArray()`、`from()`、`of()`等方法,以及`entries()`、`keys()`和`values()`等遍历方法。 - **对象和数组的扩展运算符**:`...`用于浅拷贝数组和对象。 - **模块化**:引入`import`和`export`关键字,实现模块化的代码组织。 - **Set和Map数据结构**:提供了新的集合类型,用于存储唯一值和键值对。 - **Proxy**:用于创建代理对象,可以拦截对象的访问、修改等操作。 2. **箭头函数与普通函数的区别**: - **无prototype**:箭头函数没有`prototype`属性,因此不能用作构造函数。 - **this继承**:箭头函数的`this`值不是在函数内部定义的,而是继承自包含它的上下文。 - **不可用arguments**:箭头函数内没有`arguments`对象,但可以用rest参数替代。 - **无法改变this**:不能使用`call`、`bind`、`apply`来改变`this`的指向。 3. **computed和watch的区别**: - **computed**:基于依赖的计算属性,自动更新,适合计算多个属性的结果并缓存结果。 - **watch**:仅监听特定数据的变化,执行相应逻辑,不提供新数据,适合监听单个数据或复杂逻辑。 4. **v-for与key的使用**: - 在Vue中,使用`v-for`循环渲染列表时,配合`key`属性能确保每个元素的唯一性,避免因数据变动导致的DOM错误。 5. **虚拟DOM定义及作用**: - **虚拟DOM**:JavaScript对象形式的DOM树,用于描述真实DOM结构,不直接操作实际DOM,以提高性能。 - **作用**:通过比较旧的虚拟DOM与新的虚拟DOM,使用`diff`算法找出最小变更,从而减少DOM操作,提高性能。 这些知识点涵盖了JavaScript的现代特性以及Vue框架的基础概念,对于面试或日常开发都有重要的参考价值。