zoukankan      html  css  js  c++  java
  • es6常见语法的应用场景以及误区

     es6越来越多的被应用到工作当中来,然后大部分人虽然明白es6的一些语法,有时候却不能巧妙的应用到实际工作当中来,本文将常用的es6语法做了归纳与整理。
    • 数组常用的几个方法

    1.  forEach 常用于对数组里的所有元素做同样的操作。无返回值。
              使用方法:[].forEach(function(item, index, array){
                               })
             forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身

             2. map   常用于对数组里所有元素做同样操作后返回新的数组。 有返回值。

             使用方法:[].map(function(item, index, array){

                               })

              使用误区: var a=['1', '2', '3'].map(parseInt);
                                 以上代码 输出为[1, NaN, NaN]
            3. reduce: es5出现的一个方法。常用于数组的迭代。有返回值。
                理解:  [x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
                             [x1, x2, x3, x4].reduce(f, y) =f(f(f(f(y, x1), x2), x3, x4))
                使用形式: arr.reduce(callback[, initialValue]) 
                                    callback(一个在数组中每一项上调用的函数,接受四个函数:)
                                     previousValue(上一次调用回调函数时的返回值,或者初始值)
                                    currentValue(当前正在处理的数组元素)
                                    currentIndex(当前正在处理的数组元素下标)
                                 array(调用reduce()方法的数组)
                                initialValue(可选的初始值。作为第一次调用回调函数时传给previousValue的值)
         4. filter:过滤掉不符合条件的数组元素,返回所有符合条件的数组元素组成的新的数组。有返回值。
            使用形式:[].filter(function(){
            })
     
         5.find
    • promise 与ajax请求

              promise是异步请求的一种解决方案, 比传统的解决方案——回调函数和事件——更合理和更强大。
              误区:很多人会以为使用.then指定的回调函数会在异步请求成功resolved后立即调用,其实是在当前脚本所有的同步代码都执行后才会执行。以下代码执行结果是:
    // Promise
    // Hi!
    // resolved
    let promise = new Promise(function(resolve, reject) {
      console.log('Promise');
      resolve();
    });
     
    promise.then(function() {
      console.log('resolved.');
    });
     
    console.log('Hi!');
       注意:resolve(param)里的参数param可以传到.then指定的回调函数里
    let promise = new Promise(function(resolve, reject) {
      console.log('Promise');
      let a = 'testa';
      resolve(a);
    });
    promise.then(function(val) {
      console.log(val);
    });
    console.log('Hi!');
    以上代码的运行结果为:
    Promise
    Hi!
    testa
     
     误区:并不是在promise里使用了reject ,promise的结果就为rejected。有时候即使是抛出错误,错误被捕获到了,promise状态也是resolved
    var promise = new Promise(function(resolve, reject) {
         reject(new Erro);
    });
    promise.catch(function(error) {
      console.log(error);
    });
     
    运行结果如下:
     
    • object.assign() 与设置默认值

     
     
    • 解构赋值在函数中的应用

     
    • VUEX中的es6

  • 相关阅读:
    序列号问题(入库检带序列号,冲销入库无序列号(变态情况))
    sm30表维护做排序
    HR函数学习03——维护信息类型1008
    HR函数学习02——分配组织单位
    机器学习知识积累
    机器学习数学知识积累之高等数学微积分
    机器学习数学知识积累之线性代数解析几何,微积分
    机器学习数学知识积累之数理统计
    在博客园使用LaTex编辑学术论文级别的data science文章
    机器学习数学知识积累之概率论
  • 原文地址:https://www.cnblogs.com/xmll/p/7922488.html
Copyright © 2011-2022 走看看