• ES6 简写方式


    三目运算符

    const answer = x > 10 ? 'greater than 10' : 'less than 10';

    循环

    for (let index of allImgs) 等于 for (let i = 0; i < allImgs.length; i++)

    //数组遍历
    [2, 5, 9].forEach(function (ele,index,array) {
        console.log("a[" + index + "] = " + ele);
    });
    

    变量声明

    函数开始前变量赋值,写成一行:let x,y,z=3;

    if判断

    if (likeJavaScript === true) 等于 if (likeJavaScript)

    科学计数法代替大数

    1e7 = 10000000

    多行字符串

    const lorem = 'Lorem ipsum dolor sit amet, consectetur
    	'
        + 'adipisicing elit, sed do eiusmod tempor incididunt
    	'
    //只用引号``
    const lorem = `Lorem ipsum dolor sit amet, consectetur
        adipisicing elit, sed do eiusmod tempor incididunt`
    

    变量赋值(确保原值不是 null、未定义的或空值)

    if (variable1 !== null || variable1 !== undefined || variable1 !== '') {
         let variable2 = variable1;
    }
    //上面等同于下面
    const variable2 = variable1  || 'new';
    

    属性名与 key 名相同

    const obj = { x:x, y:y }; 等于 const obj = { x, y };

    箭头函数

    function sayHello(name) {
      console.log('Hello', name);
    }
     
    setTimeout(function() {
      console.log('Loaded')
    }, 2000);
     
    list.forEach(function(item) {
      console.log(item);
    });
    
    //简写形式
    sayHello = name => console.log('Hello', name);//有参数,有名函数,先声明函数名
    setTimeout(() => console.log('Loaded'), 2000);//无参数,用括号
    list.forEach(item => console.log(item));//匿名函数,有参数
    

    隐式返回值

    单行省略括号:calcCircumference = diameter => Math.PI * diameter;
    多行(对象文本)用():calcCircumference = diameter => (Math.PI * diameter;)

    默认参数值

    函数声明定义默认值:volume = (l, w = 3, h = 4 ) => (l * w * h);
    (没有传参则使用3,4,否则用参数的)

    //强制参数,没有参数赋值则抛出错误
    mandatory = ( ) => {
      throw new Error('Missing parameter!');
    }
    foo = (bar = mandatory( )) => {
      return bar;
    }
    

    模板字符串

    const welcome = 'You have logged in as ' + first + ' ' + last + '.'
    const db = 'http://' + host + ':' + port + '/' + database;
    //使用${}
    const welcome = `You have logged in as ${first} ${last}`;
    const db = `http://${host}:${port}/${database}`;
    

    解构赋值

    const observable = require('mobx/observable');
    const action = require('mobx/action');
    //导入包的简写
    import { observable, action } from 'mobx';
    *******分割线*******
    const store = this.props.store;
    const form = this.props.form;
    //导入常量简写,重命名
    const { store, form:form_0 } = this.props;
    

    展开运算符[...]

    //数组拼接
    const arr = [1,2,3]
    const arr_1 = [5,6].concat(arr)
    const arr_2 = [11,...arr,12];//任意位置进行扩展都可以
    //复制数组
    const arr_3 = [...arr];
    //解构运算符和展开运算符连用
    const { a, b, ...z } = { a: 1, b: 2, c: 3, d: 4 };
    console.log(z) // { c: 3, d: 4 }
    

    Array.find

    pet = pets.find(pet => pet.type ==='Dog' && pet.name === 'Tommy');
    console.log(pet); // { type: 'Dog', name: 'Tommy' }
    

    编写验证函数

    foo.bar 等于 foo ['bar']

    // object validation rules
    const schema = {
      first: {
        required:true
      },
      last: {
        required:true
      }
    }
     
    // universal validation function
    const validate = (schema, values) => {
      for(field in schema) {
        if(schema[field].required) {
          if(!values[field]) {
            return false;
          }
        }
      }
      return true;
    }
    console.log(validate(schema, {first:'Bruce'})); // false
    console.log(validate(schema, {first:'Bruce',last:'Wayne'})); // true
    

    双位操作符

    Math.floor(4.9) === 4 //true 等于 ~~4.9 === 4 //true
    用~~代替体Math.floor,执行速度更快

  • 相关阅读:
    Tomcate配置单向双向SSL
    webkit和xcode
    bouncycastle创建csr
    JAVA 日期
    JS Date日期
    U盘安装RedHat linux 5.3
    Linux安装JRE tomcat配置java环境
    linux 下查看某个端口是否被占用
    Redhat下 Apache, php, mysql的默认安装路径
    VM 修改 virtualHW.version
  • 原文地址:https://www.cnblogs.com/flora-dn/p/9013333.html
Copyright © 2020-2023  润新知