es6笔记

let 和 const 命令

  1. let:块级作用域,只在let命令所在的代码块内有效。不存在变量提升。
  2. const:块级作用域,只在const命令所在的代码块内有效。不存在变量提升。用于常量的定义。

变量的解构赋值

按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构

 1.let [a, b, c] = [1, 2, 3];    
     a=1,b=2,c=3
 2.let { foo, bar } = { foo: 'aaa', bar: 'bbb' };
     foo= "aaa"
     bar= "bbb"

字符串的扩展

1.模板字符串 (反引号 ``):使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。反引号里的变量使用${变量}引入。

Math 对象的扩展(只列了常用)

ES6 在 Math 对象上新增了 17 个与数学相关的方法。所有这些方法都是静态方法,只能在 Math 对象上调用。

1.Math.trunc()方法用于去除一个数的小数部分,返回整数部分。

   Math.trunc(4.8)  // 4

2.Math.sign()方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。
它会返回五种值。
参数为正数,返回+1;
参数为负数,返回-1;
参数为 0,返回0;
参数为-0,返回-0;
其他值,返回NaN。

  Math.sign(-5) // -1
  Math.sign(5) // +1
  Math.sign(0) // +0
  Math.sign(-0) // -0
  Math.sign(NaN) // NaN

函数的扩展

1.ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。

function log(x, y = 'World') {
	console.log(x, y);
}
1.log('Hello')
  // Hello World    x: Hello  y:World
2.log('Hello', 'China')
 // Hello China   x: Hello  y:China

2.rest 参数
ES6 引入 rest 参数(形式为…变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。

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

3.箭头函数
ES6 允许使用“箭头”(=>)定义函数。如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。

var f = () => 5;
// 等同于
var f = function () {
  return 5 
};
var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
  return num1 + num2;
};

数组的扩展

1.扩展运算符
扩展运算符(spread)是三个点(…)。

let a = [1]
let b = [2]
let c = [...a,...b]    //c=[1,2]

2.Array.from() 方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。

let arrayLike = {
    '0': 'a',
    '1': 'b',
    '2': 'c',
    length: 3
};
// ES6 的写法
let arr2 = Array.from(arrayLike); 
// ['a', 'b', 'c']

3.Array.of()方法用于将一组值,转换为数组。

Array.of(3, 11, 8)  // [3,11,8]

4.实例方法:find(),findIndex(),findLast(),findLastIndex()
find()方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。
find()方法的回调函数可以接受三个参数,依次为当前的值当前的位置原数组

let a = [1, 5, 10, 15]
a.find((value, index, arr)=> {
  return value > 9;
}) // 10  (返回的是值)

findIndex()方法的用法与find()方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。

[1, 5, 10, 15].findIndex(function(value, index, arr) {
  return value > 9;
}) // 2  (返回的是值的位置)

findLast()和findLastIndex(),从数组的最后一个成员开始,依次向前检查,其他都保持不变。

5.fill()方法使用给定值,填充一个数组。

['a', 'b', 'c'].fill(7)	// [7, 7, 7]
new Array(3).fill(7)

fill方法还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置(结束位置之前结束

['a', 'b', 'c'].fill(7, 1, 2)
// ['a', 7, 'c']

6.entries(),keys()和values()——用于遍历数组。它们都返回一个遍历器对象(详见《Iterator》一章),可以用for…of循环进行遍历,唯一的区别是keys()是对键名的遍历values()是对键值的遍历entries()是对键值对的遍历

let  arrList =  ['a', 'b']
for (let index of arrList.keys()) {
  console.log(index);
}
// 0
// 1

for (let elem of arrList.values()) {
  console.log(elem);
}
// 'a'
// 'b'

for (let [index, elem] of arrList.entries()) {
  console.log(index, elem);
}
// 0 "a"
// 1 "b"

7.includes() 返回一个布尔值,表示某个数组是否包含给定的值

[1, 2, 3].includes(2)     // true
[1, 2, 3].includes(4)     // false
[1, 2, NaN].includes(NaN) // true

8.at(num) 输出数组指定索引的值,num如果为负值,表示索引从后往前数

const arr = [5, 12, 8, 130, 44];
arr.at(2) // 8
arr.at(-2) // 130

Symbol数据类型

ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它属于 JavaScript 语言的原生数据类型之一.可以从根本上解决对象属性太多导致属性名冲突覆盖的问题。对象中Symbol()属性不能被for…in遍历,但是也不是私有属性。

Set 和 Map 数据结构

1.Set是ES6引入的一种类似Array的新的数据结构,Set实例的成员类似于数组item成员,区别是Set实例的成员都是唯一,不重复的。这个特性可以轻松地实现数组去重。
2.Map是ES6引入的一种类似Object的新的数据结构,Map可以理解为是Object的超集,打破了以传统键值对形式定义对象,对象的key不再局限于字符串,也可以是Object。可以更加全面的描述对象的属性。
  • 32
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值