博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用的es6
阅读量:6807 次
发布时间:2019-06-26

本文共 5650 字,大约阅读时间需要 18 分钟。

1.比较版本:用es6中的数组方法somefunction compareVersion() {  some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。  some() 方法会依次执行数组的每个元素:    如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。    如果没有满足条件的元素,则返回false。    注意: some() 不会对空数组进行检测。    注意: some() 不会改变原始数组。  let curVersion = getSystem().SDKVersion.split('.').map( (i) => {    console.log(i);//'1' '9' '0'  })  console.log("SDKVersion", getSystem().SDKVersion);//SDKVersion 1.9.0  console.log("SDKVersion", getSystem().SDKVersion.split('.'));//['1','9','0']  console.log(curVersion);//[1,9,0]  let version = VERSION.split('.').map(i => Number(i))  return !curVersion.some((item, i) => item < version[i])}2.去拿data中的数据:包含app.data,res.data     let { missKeyInfo, sid } = app.globalData.userInfo;3.assign()在对象合并和赋值中的应用object.assign(app.globalData.userInfo,this.data.userInfo);4.Object.keys()在赋值中的应用for(var attr of Object.keys(that.data.userInfo)){   (attr!='account')&&(that.data.userInfo[attr]=app.globalData.userInfo[attr])}5.es6的find和findIndex方法 数组实例的find方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。如下[1, 4, -5, 10].find((n) => n < 0)  // -5  [1, 5, 10, 15].find(function(value, index, arr) {  return value > 9;  }) // 10  上面代码中,find方法的回调函数可以接受三个参数,依次为当前的值、当前的位置和原数组。数组实例的findIndex方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。[1, 5, 10, 15].findIndex(function(value, index, arr) {  return value > 9;  }) // 2  6.if (Version <= '1.6') return Promise.reject('版本过低,不支持此API')  if (!isAndroid) return Promise.reject('除安卓外均不支持此方法')7.const modal = weex.requireModule('modal')weex.registerModule('ModalModule', {  loading (params) {    if (params.show) console.log('%c[ModalModule] loading open', 'color: green;')    else console.log('%c[ModalModule] loading close', 'color: green;')  },  ...modal})我们对于...modal来进行解析创建一个对象 obj8.try catch的使用方法  aliPay () {      try {        weex.requireModule('PayModule').invokePaySdk({          type: 'alipay',          orderInfo: '123EE456WDE789',          sWxAppId: 'null'        }, resp => {          if (typeof resp === 'string') {            this.info = 'string: ' + resp          } else {            this.info = JSON.stringify(resp)          }        })      } catch (err) {        this.info = 'Error: ' + err      }    }  }9.使用字符串:`非常抱歉,你${payMethod}支付失败,建议你尝试其他支付方式`10.handleCelsiusChange(temperature) { this.setState({scale: 'c', temperature})}   注意temperature,当变量和属性重名时,怎么给对象赋值11.reduce()方法  reduce()方法接收一个函数callbackfn作为累加器(accumulator),  数组中的每个值(从左到右)开始合并,最终为一个值。我:而initialValue作为第一次调用   callbackfn函数的第一个参数我:function callbackfn(preValue,curValue,index,array){}  preValue: 上一次调用回调返回的值,或者是提供的初始值(initialValue)   curValue: 数组中当前被处理的数组元素  index: 当前数组项在数组中的索引值 array: 调用 reduce()方法的数组  let paramStr = Object.keys(options.params).reduce((acc, key) => `${acc}${key}=${options.params[key]}&`, '?')   reduce在拼接路径的时候的用法:'?'作为函数的第二个参数,那么就是以他开头还是累加   acc 是上次的拼接的结果   key是这次的key   ${options.params[key]}是这次的值  注意后面的&:每次凭借都是以&结尾的12.以后写函数的时候先考虑传的参数是什么类型,然后给写默认值????function?http?(OPTIONS?=?{})?13.class讲解http://www.cnblogs.com/humin/p/4313807.html14.let users = [...this.state.users, { avatar: '', content: val, username: 'zfpx' }]; 给数组添加元素,展开旧的,加入新的15.res = await axios.get('/user.json')   返回的是请求到的数据    axios.get('/user.json') 返回的是一个promise    await 后面如果是一个promise的话,返回的就是promise返回的结果,这里就是数据    这个其实和axios.get('/user.json').then(res => {.........})是一样的,只不过这里是直接拿到了res,可以在下面写应用res了                16.数组扁平化/** * 截取不带参数的路由 * @param {String} str 路由路径 * @return {String} 去掉参数后的路由路径 */const replaceQuery = str => str.replace(/\/:.*/, '');/** * 扁平化数组 * 交给导航栏使用 * @param {Array} options * @return {Array} menu = [ *  { *    label: '', *    path: '', *    icon: '', *    children: [ *      { *        label: '', *        path: '' *      } *    ] *  } * ] */const createMenus = options =>  options.map(({ label, path, icon, children }) => {    const option = { label, path: replaceQuery(path), icon };    // 地址管理不带二级菜单    if (Array.isArray(children) && !['地址管理', '账户中心'].includes(label)) {      return {        ...option,        children: children.map(({ label, path }) => {          return { label, path: replaceQuery(path) };        }),      };    }    return option;  });/** * 扁平化数组 * 交给路由使用 * @param {Array} options */const createRoutes = options =>  options    .reduce((pre, item) => {      const { children, label, ...others } = item;      if (others.component !== null) {        pre.push(others);      }      if (Array.isArray(children)) {        return [...pre, ...createRoutes(children)];      }      return pre;    }, [])    .filter(item => item.path);/** * 扁平化数组 * 交给面包屑使用 * @param {Array} options */const createBreadcrumb = options =>  options.map(({ label, path, children }) => {    if (Array.isArray(children)) {      return {        label,        path: replaceQuery(path),        children: createBreadcrumb(children),      };    } else {      return { label, path: replaceQuery(path) };    }  });export { createRoutes, createMenus, createBreadcrumb };17.对于配置常量对象 ,不允许修改且有默认值的    const carTypeDict = {      [0]: 'kg_xxmb_1534822754105.png',      [1]: 'kg_jb_1534822754199.png',      [2]: 'kg_xxxh_1534822754118.png',      [4]: 'kg_dxxh_1534822754177.png',      [5]: 'kg_ywk_1534822754120.png',      [10]: 'kg_xxpb_1534822754105.png',      [11]: 'kg_zxpb_1534822754129.png',      [12]: 'kg_dxpb_1534822754148.png',    };    const handler = {      get(target, name) {        // use 'jb.png' instead of no picture of carcode        return name in target ? target[name] : target[1];      },      set(value) {      // can't change element of carType        return false;      },    };    const carType = new Proxy(carTypeDict, handler);    复制代码

你可能感兴趣的文章
会玩弹珠也可以拿来炫了?是的,这个技能燃爆了!
查看>>
E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)
查看>>
Redis 之 简单备份还原
查看>>
DIV CSS 网页兼容全搞定 (IE6 IE7 IE8 IE9 火狐 谷歌)
查看>>
js幻灯片存档一个
查看>>
socket
查看>>
Java如何获取系统cpu、内存、硬盘信息
查看>>
H盘提示拒绝访问资料怎么寻回
查看>>
Python 的OOP 面向对象编程基础
查看>>
微信跳一跳PHP刷分源码,可实现在线刷分。非原创
查看>>
企业 - 编译内核
查看>>
Ansible入门与playbook实战
查看>>
彻底弄清楚session是什么?
查看>>
hibernate中实体类对象的四种状态
查看>>
HTML的基本标签
查看>>
Java全套视频
查看>>
[整理]使用POI操作Excel相关知识~
查看>>
虚拟化的适用范围和适用场景,服务器虚拟化架构和功能
查看>>
centos7 yum安装zabbix监控
查看>>
shell
查看>>