【es6】ECMA Script6

ES6新增语法

let 声明变量的关键字

使用let关键字声明的变量具有块级作用域,所以变量没有变量提升;使用var声明的变量不具备块级作用域特性。

const 常量

声明常量,常量就是值(内存地址)不能变化的量

let、const、var 的区别

解构赋值

数组解构

 let [a, b, c] = [1, 2, 3];
 console.log(a)//1
 console.log(b)//2
 console.log(c)//3

对象解构

let person = { name: 'zhangsan', age: 20 }; 
let { name, age } = person;

箭头函数

函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号

如果形参只有一个,可以省略小括号

() => {}             //():代表是函数; =>:必须要的符号,指向哪一个代码块;{}:函数体
const fn = () => {} //代表把一个函数赋值给fn

...(扩展运算符又称剩余参数)

let arr = [1,2,3,4,5,6]
console.log(...arr)  //1 2 3 4 5 6

let obj = {age:18,name:"小白"}
console.log({...obj}) //{age: 18, name: '小白'}

允许我们将一个不定数量的参数表示为一个数组并获取

function sum (first, ...args) {
    console.log(first); // 10
    console.log(args); // [20, 30] 
}
sum(10, 20, 30);

ES6 的内置对象扩展

Array 的扩展方法

map()方法:返回一个新数组,新数组中的元素为原始数组中的每个元素调用函数处理后得到的值

let arr = [1,2,3,4,5,6]
let newArr = arr.map((item)=>{ return item *2})
console.log(newArr); //(6) [2, 4, 6, 8, 10, 12]

reduce():可以简单的看作累加器

let arr = [1,2,3,4,5,6]
let newArr = arr.reduce((a,b)=>{return a+b})
console.log(newArr); //21

构造函数方法:Array.from()

将伪数组或可遍历对象转换为真正的数组

实例方法:find()

用于找出第一个符合条件的数组成员,如果没有找到返回undefined

实例方法:findIndex()

用于找出第一个符合条件的数组成员的位置,如果没有找到返回-1

实例方法:includes()

判断某个数组是否包含给定的值,返回布尔值。
role.includes('pyq_administrator') //role为数组
role.includes('admin')

String 的扩展方法

模板字符串

ES6新增的创建字符串的方式,使用反引号定义
 let  people={
          name:"xiaoming",
          age:12,
 }
console.log("我是"+people.name+",今年"+people.age+"岁");//我是xiaoming,今年12岁
// 使用模板字符串 是用`${}`
console.log(`我是${people.name},今年${people.age}岁`);//我是xiaoming,今年12岁

startsWith()

表示参数字符串是否在原字符串的头部,返回布尔值

endsWith()

表示参数字符串是否在原字符串的尾部,返回布尔值

repeat()

repeat方法表示将原字符串重复n次,返回一个新字符串

Set 数据结构

ES6 提供了新的数据结构 Set,它类似于数组,但是成员的值都是唯一的,没有重复的值

// 数组去重
let Arr = [1,2,3,3,4,4]
let set = new Set(Arr)
console.log([...set]); //[1, 2, 3, 4]

Map数据结构

JavaScript 的对象,本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键;而Map可以看做是对象的一种扩展,它也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键

  • set方法设置键名key对应的键值为value

const m = new Map();
 
m.set('edition', 6)        // 键是字符串
m.set(262, 'standard')     // 键是数值
  • get方法读取key对应的键值,如果找不到key,返回undefined

const m = new Map();
 
const hello = function() {console.log('hello');};
m.set(hello, 'Hello ES6!') // 键是函数
 
m.get(hello)  // Hello ES6!
  • has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中

const m = new Map();
 
m.set('edition', 6);
m.set(262, 'standard');
 
m.has('edition')     // true
m.has('years')       // false
m.has(262)           // true
  • delete方法删除某个键,返回true。如果删除失败,返回false

const m = new Map();
m.set(AC, 'nah');
m.has(AC)       // true
 
m.delete(AC)
m.has(AC)       // false

Module 模块化

  • es6 module之默认导出,指的是需要导出一个就行

//ex.js
var val = 'ex data'
export default val
 
//im.js
import val from './ex.js'
consloe.log(val)  //'ex data'
  • es6 module之常规导出,指的是需要导出多个

//ex.js
var val = 'ex data'
export {val as valName}
 
//im.js
import { valname as hh } from './ex.js'
consloe.log(hh) //'ex data'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来自湖南的阿晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值