es6总结

本文详细介绍了ES6的变量声明方式,包括let和const的区别,深入解析了es5和es6数组的遍历方法,重点讲解了箭头函数、解构赋值、类和继承、Symbol、Set、Map等新特性。同时,探讨了Promise对象及其解决的回调地狱问题,以及async/await的使用。此外,还涵盖了迭代器、宏任务与微任务、Object.defineProperty和Proxy在数据拦截中的应用,最后讨论了ES6的模块导入导出机制。
摘要由CSDN通过智能技术生成

es6 变量的声明方式

let 关键字:
  1. 声明的变量是块级作用域
  2. 不允许重复声明变量
  3. 不存在变量提升
for(let i = 0; i < 5; i++){
   
    setTimeout(() =>{
   
        console.log(i)
    }, 1000)
}
const 关键字:
  1. 声明的是块级作用域
  2. 不允许重复声明变量
  3. 不存在变量提升
  4. 声明的是一个常量(基本数据类型):本质 是 存放变量的内存地址不允许更改; 基本数据类型的数据和地址存放在栈中(存放在一起的), 因此变成常量, 常量不允许更改; 但是对于引用数据类型, 栈中存放的是地址(指针),地址指向堆内存空间,声明一个引用数据类型作为常量时, 相当于是固定了指针, 而不能固定数据
常见面试题: var, let 和const 三者的区别
  1. var 存在变量提升机制, let和const 不存在变量提升
  2. var 允许重复声明变量, let和const不允许重复声明变量
  3. var 声明的变量值可以随意更改,const 声明的是常量,不允许更改
  4. var 声明的变量会产生内存泄露,let 和 const 不会
  5. var 声明的变量是全局作用域或者局部作用域, let 和 const声明的变量是块级作用域

es5 数组的遍历(迭代)方式

以下两种循环方式可以使用 break 和continue 语句

  1. for循环
  2. for-in循环:可以遍历数组, 但是他最主要的功能是遍历对象
    ————————————————————————————
    以下几种遍历方式不可以使用 break 和continue 语句
    错误信息: Uncaught SyntaxError: Illegal break statement
    错误信息: Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement
  3. forEach()
  4. map() : 映射, 返回是一个新数组
  5. some() :返回一个布尔值, true: 只要数据中有一个元素满足条件即可
  6. every(): 返回一个布尔值, true: 数据中所有的元素满足条件即可 ;
  7. reduce(function(acc, value, index){}, initValue) : 累计器 ;如果提供初始值 initValue; 则acc 就是初始值,否则是数组中的第一个元素
  8. filter() : 过滤器 ; 返回的是一个新的数组(满足条件的)

是否使用return语句

  • for循环,for-in, forEach() 他们三者不需要使用return语句
  • map() some() every() reduce() filter() 他们需要借助于return语句

es6的箭头函数

使用 => 表示箭头函数

  1. 基本结构
let fun = () => {
   }
  1. 一个参数: () 可以省略
let fun = (x) => {
   
    console.log(x)
}

let fun = x => {
   
    console.log(x)
}

let fun = (x, y) => {
   
    console.log(x, y)
}
  1. 返回值是单一的语句 : {} 可以省略, 如果返回值是对象, 需要添加 ()
let fun = x => x * x

let fun = () => ({
   
    name:'tom',
    age:18
})

es6的解构赋值

  1. 对象解构 : 按照对象的key(属性名)进行解构
//  按照默认键名进行解构
let {
   name, age} = {
   name:;'tom', age:18}
console.log(name, age) // tom  18

//   重新定义 解构名字 
let {
   name:xm, age:nl} = {
   name:;'tom', age:18}
console.log(xm , nl) // tom , 18
  1. 数组解构 : 按照数组的顺序(索引值) 进行解构
let arr = [10, 30, 50];
 // let [a] = arr;
let [a, , b] = arr;

//  结合 扩展运算符进行解构
let [a, ...b] = arr; // 正确   ...b 扩展运算符必须放到最后
let [...b, a] = arr;  // 错误信息:  Rest element must be last element


//  数组是按照索引值进行解构
let arr = [10, [23, 456]];
// let [a, b, c] = arr;  // a ===> 10 ;  b===> [23, 456]  c===> undefined
let [a, [b, c]] = arr; //  a ===> 10 ;  b===> 23  c===> 456
console.log(a);
console.log(b);
console.log(c);

  1. 扩展运算符的应用

    • 通过 扩展运算符 实现一维数组的深拷贝
        let arr = [10, 30, 540];
        let [...a] = arr;
        console
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值