ECMAScript 6 中的快捷语法汇总及代码示例

对于每个 JavaScript 开发人员,快捷语法都是必备技能之一,下面就集中介绍这些快捷语法。

三元运算符

传统写法

const x = 20;
let answer;
if (x > 10) {
    answer = ‘is greater‘;
} else {
    answer = ‘is lesser‘;
}

快捷语法

const answer = x > 10 ? ‘is greater‘ : ‘is lesser‘;

空值判定

传统写法

if (variable1 !== null || variable1 !== undefined || variable1 !== ‘‘) {
     let variable2 = variable1;
}

快捷语法

const variable2 = variable1  || ‘new‘;

变量声明

传统写法

let x;
let y;
let z = 3;

快捷语法

let x, y, z=3;

如果 true

传统写法

if (likeJavaScript === true)

快捷语法

if (likeJavaScript)

for 循环

传统写法

for (let i = 0; i < allImgs.length; i++)

快捷语法

for (let index in allImgs)

Array.forEach 语法

function logArrayElements(element, index, array) {
  console.log("a[" + index + "] = " + element);
}
[2, 5, 9].forEach(logArrayElements);
// logs:
// a[0] = 2
// a[1] = 5
// a[2] = 9

十进制指数

例如,1E7基本上是指,随后7个零。它代表了小数基(其中的JavaScript解释为浮子式)等于10,000,000

传统写法

for (let i = 0; i < 10000; i++) {}

快捷语法

for (let i = 0; i < 1e7; i++) {}

// All the below will evaluate to true
1e0 === 1;
1e1 === 10;
1e2 === 100;
1e3 === 1000;
1e4 === 10000;
1e5 === 100000;

对象属性(Object Property)

传统写法

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

快捷语法

const obj = { x, y };

箭头函数 Arrow Functions

传统写法

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));

隐式返回 Implicit Return

传统写法

function calcCircumference(diameter) {
  return Math.PI * diameter
}

快捷语法

calcCircumference = diameter => (
  Math.PI * diameter;
)

默认参数值 Default Parameter Values

传统写法

function volume(l, w, h) {
  if (w === undefined)
    w = 3;
  if (h === undefined)
    h = 4;
  return l * w * h;
}

快捷语法

volume = (l, w = 3, h = 4 ) => (l * w * h);

volume(2) //output: 24

字符串模板 Template Literals

传统写法

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}`;

赋值解构 Destructuring Assignment

传统写法

const observable = require(‘mobx/observable‘);
const action = require(‘mobx/action‘);
const runInAction = require(‘mobx/runInAction‘);

const store = this.props.store;
const form = this.props.form;
const loading = this.props.loading;
const errors = this.props.errors;
const entity = this.props.entity;

快捷语法

import { observable, action, runInAction } from ‘mobx‘;

const { store, form, loading, errors, entity } = this.props;
// 或者
const { store, form, loading, errors, entity:contact } = this.props;

多行字符串 Multi-line String

传统写法

const lorem = ‘Lorem ipsum dolor sit amet, consectetur\n\t‘
    + ‘adipisicing elit, sed do eiusmod tempor incididunt\n\t‘
    + ‘ut labore et dolore magna aliqua. Ut enim ad minim\n\t‘
    + ‘veniam, quis nostrud exercitation ullamco laboris\n\t‘
    + ‘nisi ut aliquip ex ea commodo consequat. Duis aute\n\t‘
    + ‘irure dolor in reprehenderit in voluptate velit esse.\n\t‘

快捷语法

const lorem = `Lorem ipsum dolor sit amet, consectetur
    adipisicing elit, sed do eiusmod tempor incididunt
    ut labore et dolore magna aliqua. Ut enim ad minim
    veniam, quis nostrud exercitation ullamco laboris
    nisi ut aliquip ex ea commodo consequat. Duis aute
    irure dolor in reprehenderit in voluptate velit esse.`

操作符传播 Spread Operator

传统写法

// joining arrays
const odd = [1, 3, 5];
const nums = [2 ,4 , 6].concat(odd);

// cloning arrays
const arr = [1, 2, 3, 4];
const arr2 = arr.slice()

快捷语法

// joining arrays
const odd = [1, 3, 5 ];
const nums = [2 ,4 , 6, ...odd];
console.log(nums); // [ 2, 4, 6, 1, 3, 5 ]

// cloning arrays
const arr = [1, 2, 3, 4];
const arr2 = [...arr];

强制参数 Mandatory Parameter

传统写法

function foo(bar) {
  if(bar === undefined) {
    throw new Error(‘Missing parameter!‘);
  }
  return bar;
}

快捷语法

mandatory = () => {
  throw new Error(‘Missing parameter!‘);
}

foo = (bar = mandatory()) => {
  return bar;
}

Array.find

传统写法

const pets = [
  { type: ‘Dog‘, name: ‘Max‘},
  { type: ‘Cat‘, name: ‘Karl‘},
  { type: ‘Dog‘, name: ‘Tommy‘},
]

function findDog(name) {
  for(let i = 0; i<pets.length; ++i) {
    if(pets[i].type === ‘Dog‘ && pets[i].name === name) {
      return pets[i];
    }
  }
}

快捷语法

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

Object [key]

传统写法

function validate(values) {
  if(!values.first)
    return false;
  if(!values.last)
    return false;
  return true;
}

console.log(validate({first:‘Bruce‘,last:‘Wayne‘})); // true

快捷语法

// 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

Double Bitwise NOT

传统写法

Math.floor(4.9) === 4  //true

快捷语法

~~4.9 === 4  //true
时间: 2024-10-11 04:15:21

ECMAScript 6 中的快捷语法汇总及代码示例的相关文章

java中的List详解以及代码示例

一:概念List是Java集合Collection中的一个接口,一般用ArrayList类和LinkedList类去实现这个接口.Collection集合还有其他接口:Map,Set(在我的另一篇博客)二:LIST的使用List的常用方法 boolean add(E e) //尾插 e void add(int index, E element) //将 e 插入到 index 位置 boolean addAll(Collection<? extends E> c) //尾插 c 中的元素 E

软件开发中的自测及C代码示例

在软件开发中,程序自测是一个永远都绕不开的话题.很多开发人员以写出有难度的代码为荣,但却不重视对自己编写的代码进行测试,这导致了最终到达客户手中的产品质量不高,bug频发,损害了公司的形象.对于一个开发人员来说,我们应该将开发和自测置于同等重要的地位,我们花在自测上的时间要不比开发少.能否对自己编写的代码进行充分的自测也是检验一个开发人员水平高低的标准之一. 自测方法 根据所编写的程序的特点,自测方法大致有如下几种: 第一种,利用模拟工具进行自测.这种方法适用于需要其他模块(尚不具备)发过来的消

浅谈 PHP 中的多种加密技术及代码示例

信息加密技术的分类 单项散列加密技术(不可逆的加密) 属于摘要算法,不是一种加密算法,作用是把任意长的输入字符串变化成固定长的输出串的一种函数 MD5 string md5 ( string $str [, bool $raw_output = false ] ); //MD5加密,输入任意长度字符串返回一个唯一的32位字符 md5()为单向加密,没有逆向解密算法,但是还是可以对一些常见的字符串通过收集,枚举,碰撞等方法破解;所以为了让其破解起来更麻烦一些,所以我们一般加一点盐值(salt)并双

php中的mongodb select常用操作代码示例【转载】

前面说到了mongodb安装,配置,集群,以及php的插入与更新等,请参考:mongodb.下面说一下,mongodb select的常用操作 测试数据: 复制代码代码如下: { "_id" : 1, "title" : "红楼梦", "auther" : "曹雪芹", "typeColumn" : "test", "money" : 80, &q

C#中构建多线程应用程序[转] ----代码示例

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace 线程同步_线程异步 { //打印类 public class Printer { //打印数字的方法 public void PrintNumbers() { Console.WriteLine("-

Java中的七种排序方式代码示例

package baseJava; /** * @title SortMethods.java * @author DonsenChen * @Date 2018年5月2日 上午10:16:03 * @Description */ public class SortMethods { public static void main(String[] args) { int[] arr = { 3, 7, 9, 1, 4, 8, 2, 6, 5 }; binarySort(arr); bubble

ThinkPHP快捷方法汇总(随时添加)

读取配置 C('参数名称') 例如,读取当前的URL模式配置参数: $model = C('URL_MODEL'); // 由于配置参数不区分大小写,因此下面的写法是等效的 // $model = C('url_model'); C方法也可以用于读取二维配置: //获取用户配置中的用户类型设置 C('USER_CONFIG.USER_TYPE'); 因为配置参数是全局有效的,因此C方法可以在任何地方读取任何配置,即使某个设置参数已经生效过期了. 动态配置 设置格式:C('参数名称','新的参数值

提升效率的Linux终端快捷操作汇总

很多普通 Linux 桌面用户都对使用终端感到排斥和恐惧,其实它没大家想的那么复杂,很多常见操作都可以直接在终端中进行,如:安装软件.升级系统等. 无论你是新手还是 Linux 终端使用的老鸟,系统极客在此为大家总结了提升终端命令执行效率的快捷操作汇总,希望能帮助你学习和提升效率. 移动定位光标 在终端中移动光标和定位似乎非常不便,其实不是你想的那样,有很多种方式可以让键盘成为你的好朋友,只是需要掌握正确的方法而已. 定位单词 在长段的命令中,使用 Ctrl + ← 和 Ctrl + → 可快速

(基础篇)正则表达式的语法汇总与详细介绍

用好正则表达式往往会起到事半功倍的效果,以下是对PHP正则表达式的语法汇总和详细介绍. 首先,让我们看看两个特别的字符:'^' 和 '$' 他们是分别用来匹配字符串的开始和结束,一下分别举例说明 "^The": 匹配以 "The"开头的字符串; "of despair$": 匹配以 "of despair" 结尾的字符串; "^abc$": 匹配以abc开头和以abc结尾的字符串,实际上是只有abc与之匹配