美文网首页
ES6 实用新增特性总结

ES6 实用新增特性总结

作者: HoPGoldy | 来源:发表于2019-01-09 20:09 被阅读7次

以下内容是我在学习ES6的语法时整理的一些比较常用的新特性。

let和const

let可以理解为var的替代版本,它的作用域更加严格,新增了{ }块作用域
const定义的值为常量

解构赋值

ES6可以从数组和对象中提取值赋值给变量

数组解构

let a = 1;
let b = 2;
// 等同于
let [a, b] = [1, 2];

只要等号两边的模式相同,左边的变量就会被赋予对应的值
如果解构不成功,变量的值就等于undefined
解构赋值允许指定默认值

let [x, y = 'b'] = ['a']; // x='a', y='b'
let [x, y = 'b'] = ['a', undefined]; // x='a', y='b'
// 默认值也可以是函数
function f() {
  console.log('aaa');
}
let [x = f()] = [1];

对象解构

let { foo, bar } = { foo: "aaa", bar: "bbb" };
foo // "aaa"
bar // "bbb"

变量名与属性名不一致

// 初始化变量baz 值为foo属性
let { foo: baz } = { foo: 'aaa', bar: 'bbb' };
baz // "aaa"

用途

从函数返回多个值、提取 JSON 数据、遍历 Map 结构、输入模块的指定方法

字符串拓展

模板字符串

反引号`代替单引号', 用${ 表达式 }来插入值

let a = 1, b = 2, c = 3
console.log('a的值为 ' + a + ',b的值为 ' + b + ',c的值为 ' + c)
// 等同于
console.log(`a的值为 ${a}, b的值为 ${b}, c的值为 ${c}`)

内置方法

includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
repeat方法返回一个新字符串,表示将原字符串重复n次。
如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

'abc'.padStart(10, '0123456789') //太长的话会被裁剪
'x'.padStart(4) // '   x' 默认用空格补全
'123456'.padStart(10, '0') // "0000123456"
'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"

数值拓展

在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法。
Number.isFinite()用来检查一个数值是否为有限的(finite),如果参数类型不是数值,一律返回false。
Number.isNaN()用来检查一个值是否为NaN。

全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变
Number.isInteger()判断是否为整数

函数拓展

参数默认值

function sum(x = 1, y = 2) { 
  console.log(x + y) 
} 
Sum(1) //3

rest 参数

function add(...values) { 
  let sum = 0; 
  for (var val of values) { 
    sum += val; 
  } 
  return sum; 
  } 
add(2, 5, 3) // 10

箭头函数

var f = v => v;

// 等同于
var f = function (v) {
  return v;
};

箭头函数会绑定this,减少让人头疼的this指向问题

// ES6
function foo() {
  setTimeout(() => {
    console.log('id:', this.id);
  }, 100);
}

// 等同于ES5
function foo() {
  var _this = this;
  setTimeout(function () {
    console.log('id:', _this.id);
  }, 100);
}

相关文章

  • ES6 实用新增特性总结

    以下内容是我在学习ES6的语法时整理的一些比较常用的新特性。 let和const let可以理解为var的替代版本...

  • ES6新增特性总结

    ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMA...

  • es6数组的扩展

    es6中数组较es5增加了很多特性。先简单总结一下,方便自己学习记忆。新增特性: 扩展运算符(...),将一个数组...

  • es6新增特性

    一、变量的改变 let 用来声明变量(块级作用域) const 用来表示常量(块级作用域) 块级作用域 就是在{}...

  • es6新增特性

    个人主观意见整理es6中常用十个特性:1、默认参数2、模版表达式3、多行字符串4、解构赋值5、改进的对象表达式6、...

  • ES6新增特性

    const(声明常量), let(声明变量)关键字;map 和 set 数据类型;模板字符串;对象数组解构赋值;函...

  • ES6改良ES5中的5大“缺陷”

    前言 ECMAScript 6 (ES6) 新特性可以分为: 新增语法(例如:class) 增强 JavaScri...

  • ES6 笔记(常量&&变量)

    ES6 笔记(常量&&变量) 变量&&常量 新特性 ES6 新增了let命令,用来声明变量。它的用法类似于var,...

  • Promise基础

    1、Promise是什么? promsie是ES6新增的一个特性,它已经列入ES6的正式规范中promise是抽象...

  • ES6特性总结

    ES6 新增了很多特性,这里罗列了一些常用的,供大家参考。 ES6常用方法罗列 let、count iterabl...

网友评论

      本文标题:ES6 实用新增特性总结

      本文链接:https://www.haomeiwen.com/subject/lsuafqtx.html