ES6知识点

1. 变量声明

• let: 块级作用域变量,不可重复声明。

• const: 块级作用域常量,不可重复声明,值不可变(对象属性可变)。

 2. 箭头函数

• 语法:`(param1, param2) => { ... }`。

• 特点:

  • 简化函数定义。

  • 没有自己的 `this`,继承父级作用域的 `this`。

  • 不能作为构造函数使用。

 3. **模板字符串**

• 语法:`` `Hello, ${name}!` ``。

• 特点:

  • 支持多行字符串。

  • 支持嵌入变量或表达式。

 4. **解构赋值**

• 数组解构:`let [a, b] = [1, 2];`。

• 对象解构:`let { name, age } = { name: "Alice", age: 20 };`。

• 特点:简化变量赋值。

 5. **默认参数**

• 语法:`function greet(name = "Guest") { ... }`。

• 特点:为函数参数提供默认值。

 6. **扩展运算符**

• 语法:`...`。

• 用途:

  • 展开数组或对象:`let arr = [...arr1, ...arr2];`。

  • 收集剩余参数:`function foo(a, b, ...rest) { ... }`。

 7. **类(Class)**

• 语法:

  ```javascript

  class Person {

    constructor(name) {

      this.name = name;

    }

    greet() {

      console.log(`Hello, ${this.name}!`);

    }

  }

• 特点:

  • 支持构造函数、方法、继承。

  • 语法糖,底层基于原型链。

 8. 模块化

• export: 导出模块。

  • 默认导出:`export default MyComponent;`。

  • 命名导出:`export { foo, bar };`。

• import: 导入模块。

  • 默认导入:`import MyComponent from './MyComponent';`。

  • 命名导入:`import { foo, bar } from './module';`。

 9. Promise

• 语法:

 javascript

  let promise = new Promise((resolve, reject) => {

    if (success) resolve(value);

    else reject(error);

  });

• 特点:

  • 用于处理异步操作。

  • 支持链式调用:`promise.then().catch()`。

 10. 迭代器与生成器

• 迭代器(Iterator): 实现 `Symbol.iterator` 方法的对象。

• 生成器(Generator): 语法:`function* gen() { yield 1; }`。

  • 特点:惰性求值,支持暂停和恢复。

 11. Set 和 Map

• Set: 不重复的值集合。

  • 语法:`let set = new Set([1, 2, 3]);`。

• Map: 键值对集合,键可以是任意类型。

  • 语法:`let map = new Map([['key', 'value']]);`。

 12. **Symbol**

• 语法:`let sym = Symbol('description');`。

• 特点:

  • 唯一的、不可变的值。

  • 常用于对象属性的唯一标识符。

 13. Proxy

• 语法:

 javascript

  let proxy = new Proxy(target, {

    get(target, prop) { ... },

    set(target, prop, value) { ... }

  });

• 特点:用于拦截和自定义对象操作。

 14. Reflect

• 提供一组操作对象的方法,如 `Reflect.get()`、`Reflect.set()`。

• 特点:与 `Proxy` 配合使用,增强对象操作。

 15. 新的数据类型

• BigInt: 表示大整数。

  • 语法:`let bigNum = 9007199254740991n;`。

• Symbol: 唯一的值。

 16. 新的数组方法

• Array.from(): 将类数组对象转换为数组。

• Array.of(): 创建数组。

• find(): 查找符合条件的元素。

• findIndex(): 查找符合条件的元素的索引。

• includes(): 判断数组是否包含某个值。

 17. **对象扩展**

• 属性简写:`let obj = { name };`。

• 方法简写:`let obj = { greet() { ... } };`。

• 计算属性名:`let obj = { [key]: value };`。

18. 异步编程

• async/await: 语法糖,简化 Promise 的使用。

  • 语法:

    javascript

    async function foo() {

      let result = await somePromise();

    }

 19. **字符串扩展**

• **`startsWith()`**: 判断字符串是否以指定字符开头。

• **`endsWith()`**: 判断字符串是否以指定字符结尾。

• **`includes()`**: 判断字符串是否包含指定字符。

• **`repeat()`**: 重复字符串。

 20. **数值扩展**

• **`Number.isFinite()`**: 判断是否为有限数。

• **`Number.isNaN()`**: 判断是否为 `NaN`。

• **`Number.isInteger()`**: 判断是否为整数。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 ECMAScript 6.0(简称ES6),作为下一代JavaScript的语言标准正式发布于2015 年 ...
    grain先森阅读 3,696评论 1 128
  • 1.for循环括号内作用域与循环体作用域不同 2.let const声明的变量有暂时性死区 3.块级作用域必须有大...
    如沐春风ei阅读 693评论 0 2
  • 1 let 和 const let 的作用域与 const 命令相同:只在声明所在的块级作用域内有效。且不存在变量...
    接下来的冬天阅读 330评论 0 0
  • 1.箭头函数有哪些特性1、箭头函数是匿名函数,不绑定自己的this,arguments,super,new.tar...
    猴逃逃阅读 224评论 0 0
  • 15. Promise异步操作 使用promise封装Ajax const p = new Promise(fun...
    方方孜阅读 344评论 0 1

友情链接更多精彩内容