• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

es6---在项目和平时练习应用es6语法

武飞扬头像
Cirrod
帮助1

一、关于取值

  1.  
    const obj = {
  2.  
    a:1,
  3.  
    b:2,
  4.  
    c:3,
  5.  
    d:4,
  6.  
    e:5,
  7.  
    }
  8.  
     
  9.  
    const a = obj.a;
  10.  
    const b = obj.b;
  11.  
    const c = obj.c;
  12.  
    const d = obj.d;
  13.  
    const e = obj.e;

es6解构赋值

const {a,b,c,d,e} = obj;

也可以使用:进行重命名

  1.  
    const {a:a1} = obj;
  2.  
    console.log(a1)

二、数组和对象的合并

  1.  
    const a = [1,2,3];
  2.  
    const b = [1,5,6];
  3.  
    const c = a.concat(b);//[1,2,3,1,5,6]
  4.  
     
  5.  
    const obj1 = {
  6.  
    a:1,
  7.  
    }
  8.  
    const obj2 = {
  9.  
    b:1,
  10.  
    }
  11.  
    const obj = Object.assign({}, obj1, obj2);//{a:1,b:1}

es6的扩展运算符,数组的合去重

  1.  
    const a = [1,2,3];
  2.  
    const b = [1,5,6];
  3.  
    const c = [...new Set([...a,...b])];//[1,2,3,5,6]
  4.  
     
  5.  
    const obj1 = {
  6.  
    a:1,
  7.  
    }
  8.  
    const obj2 = {
  9.  
    b:1,
  10.  
    }
  11.  
    const obj = {...obj1,...obj2};//{a:1,b:1}

三、字符串拼接

  1.  
    const name = '小明';
  2.  
    const score = 59;
  3.  
    let result = '';
  4.  
    if(score > 60){
  5.  
    result = `${name}的考试成绩及格`;
  6.  
    }else{
  7.  
    result = `${name}的考试成绩不及格`;
  8.  
    }

es6模板字符串

${}中可以放入任意的JavaScript表达式,可以进行运算,以及引用对象属性。

  1.  
    const name = '小明';
  2.  
    const score = 59;
  3.  
    const result = `${name}${score > 60?'的考试成绩及格':'的考试成绩不及格'}`;

四、if条件多

  1.  
    if(
  2.  
    type == 1 ||
  3.  
    type == 2 ||
  4.  
    type == 3 ||
  5.  
    type == 4 ||
  6.  
    ){
  7.  
    //...
  8.  
    }

es6数组方法includes

  1.  
    const condition = [1,2,3,4];
  2.  
     
  3.  
    if( condition.includes(type) ){
  4.  
    //...
  5.  
    }

五、精确搜索

  1.  
    const a = [1,2,3,4,5];
  2.  
    const result = a.filter(
  3.  
    item =>{
  4.  
    return item === 3
  5.  
    }
  6.  
    )

es6数组find方法,性能优化,find方法中找到符合条件的项,就不会继续遍历数组。

  1.  
    const a = [1,2,3,4,5];
  2.  
    const result = a.find(
  3.  
    item =>{
  4.  
    return item === 3
  5.  
    }
  6.  
    )

六、获取对象属性值

const name = obj && obj.name;

es6可选链?

const name = obj?.name;

可选链?补充:

会在尝试访问obj.name之前确定obj既不是null也不是undefined,如果obj是null或者undefined表达式会进行短路计算直接返回undefined

七、输入框非空判断

  1.  
    if(value !== null && value !== undefined && value !== ''){
  2.  
    //...
  3.  
    }

es6空位合并运算符??

  1.  
    if((value??'') !== ''){
  2.  
    //...
  3.  
    }

es6空位合并运算符??补充:

前值是null或者undefined时表达式返回后值

  1.  
    const a = 0 ?? '默认值a';
  2.  
    cosnt b = null ?? '默认值b';
  3.  
     
  4.  
     
  5.  
    console.log(a); // "0" 0是假值,但不是 null 或者 undefined
  6.  
    console.log(b); // "默认值b"

拓展:

变量赋默认值一般使用逻辑或操作符 || 。但是由于 || 是一个布尔逻辑运算符,左侧的操作数会被强制转换成布尔值用于求值。任何假值(0, '', NaN, null, undefined)都不会被返回。这导致如果你使用0''NaN作为有效值,就会出现不可预料的后果。这也是 ?? 操作符可以解决这个问题

  1.  
    const a = 0
  2.  
    const b = a || 5
  3.  
     
  4.  
     
  5.  
    //0作为有效值,与我们期望的 b 的值不一致
  6.  
    console.log(b); // 5

八、异步函数回调

  1.  
    const fn1 = () =>{
  2.  
    return new Promise((resolve, reject) => {
  3.  
    setTimeout(() => {
  4.  
    resolve(1);
  5.  
    }, 300);
  6.  
    });
  7.  
    }
  8.  
    const fn2 = () =>{
  9.  
    return new Promise((resolve, reject) => {
  10.  
    setTimeout(() => {
  11.  
    resolve(2);
  12.  
    }, 600);
  13.  
    });
  14.  
    }
  15.  
    const fn = () =>{
  16.  
    fn1().then(res1 =>{
  17.  
    console.log(res1);// 1
  18.  
    fn2().then(res2 =>{
  19.  
    console.log(res2)
  20.  
    })
  21.  
    })
  22.  
    }
学新通

es6的async和await

  1.  
    const fn = async () =>{
  2.  
    const res1 = await fn1();
  3.  
    const res2 = await fn2();
  4.  
    console.log(res1);// 1
  5.  
    console.log(res2);// 2
  6.  
    }

九、函数默认参数

  1.  
    function fn (name, age) {
  2.  
    let name = name || 'hsq'
  3.  
    let age = age || 22
  4.  
    console.log(name, age)
  5.  
    }
  6.  
    fn() // hsq 22

es6函数默认参数

  1.  
    function fn (name = 'hsq', age = 22) {
  2.  
    console.log(name, age)
  3.  
    }
  4.  
    fn() // hsq 22
  5.  
    fn('test', 23) // test 23

十、剩余参数

一个函数,传入参数的个数是不确定的,这就可以用ES6的剩余参数

  1.  
    function fn (name, ...params) {
  2.  
    console.log(name)
  3.  
    console.log(params)
  4.  
    }
  5.  
    fn ('hsq', 1, 2) // hsq [ 1, 2 ]
  6.  
    fn ('hsq', 1, 2, 3, 4, 5) // hsq [ 1, 2, 3, 4, 5 ]

十 一、箭头函数

普通函数

  1.  
    function fn () {}
  2.  
     
  3.  
    const fn = function () {}

es6箭头函数

  1.  
    const fn = () => {}
  2.  
     
  3.  
    // 如果只有一个参数,可以省略括号
  4.  
    const fn = name => {}
  5.  
     
  6.  
    // 如果函数体里只有一句return
  7.  
    const fn = name => {
  8.  
    return 2 * name
  9.  
    }
  10.  
    // 可简写为
  11.  
    const fn = name => 2 * name
  12.  
     
  13.  
    // 如果返回的是对象
  14.  
    const fn = name => ({ name: name })
  15.  
     
学新通

普通函数和箭头函数的区别: 

  • 1、箭头函数不可作为构造函数,不能使用new
  • 2、箭头函数没有原型对象
  • 3、箭头函数没有自己的this
  • 4、箭头函数没有arguments对象

十二、获取对象的键值

Object.keys

可以用来获取对象的key的集合

  1.  
    const obj = {
  2.  
    name: 'hsq',
  3.  
    age: 22,
  4.  
    gender: '男'
  5.  
    }
  6.  
     
  7.  
    const values = Object.keys(obj)
  8.  
    console.log(values) // [ 'hsq', 22, '男' ]

Object.values

可以用来获取对象的value的集合

  1.  
    const obj = {
  2.  
    name: 'hsq',
  3.  
    age: 22,
  4.  
    gender: '男'
  5.  
    }
  6.  
     
  7.  
    const values = Object.values(obj)
  8.  
    console.log(values) // [ 'hsq', 22, '男' ]

Object.entries

可以用来获取对象的键值对集合

  1.  
    const obj = {
  2.  
    name: 'hsq',
  3.  
    age: 22,
  4.  
    gender: '男'
  5.  
    }
  6.  
     
  7.  
    const entries = Object.entries(obj)
  8.  
    console.log(entries)
  9.  
    // [ [ 'name', 'hsq' ], [ 'age', 22 ], [ 'gender', '男' ] ]

十三、数组扁平化

Array.flat

有一个二维数组,我想让他变成一维数组:

  1.  
    const arr = [1, 2, 3, [4, 5, 6]]
  2.  
     
  3.  
    console.log(arr.flat()) // [ 1, 2, 3, 4, 5, 6 ]

还可以传参数,参数为降维的次数

  1.  
    const arr = [1, 2, 3, [4, 5, 6, [7, 8, 9]]]
  2.  
     
  3.  
    console.log(arr.flat(2))
  4.  
    [
  5.  
    1, 2, 3, 4, 5,
  6.  
    6, 7, 8, 9
  7.  
    ]

如果传的是一个无限大的数字,那么就实现了多维数组(无论几维)降为一维数组

  1.  
    const arr = [1, 2, 3, [4, 5, 6, [7, 8, 9, [10, 11, 12]]]]
  2.  
     
  3.  
    console.log(arr.flat(Infinity))
  4.  
    [
  5.  
    1, 2, 3, 4, 5,
  6.  
    6, 7, 8, 9, 10,
  7.  
    11, 12
  8.  
    ]
  9.  
     

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhghabgf
系列文章
更多 icon
同类精品
更多 icon
继续加载