web前端 -- es6总结

ES6 let 与 const

 let:声明的变量只在 let 命令所在的代码块内有效,只能声明一次,不存在变量提升。

const:声明一个只读的常量,一旦声明,常量的值就不能改变,若值为对象或数组,对象里面的属性和方法可修改,数组中的元素可修改,不会变量提升,必须先定义后使用,不许重复定义,遵循块级作用域。

ES6 Symbol

Symbol:

Symbol函数栈不能用 new 命令,因为 Symbol 是原始数据类型,不是对象,可以接受一个字符串作为参数。

作为属性名:

由于每一个 Symbol 的值都是不相等的,所以 Symbol 作为对象的属性名,可以保证属性不重名。Symbol 作为对象属性名时不能用.运算符,要用方括号。

ES6 Map 与 Set 

 一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。

Map 中的键值是有序的(FIFO 原则),而添加到Object 中的键则不是。

Map 的键值对个数可以从 size 属性获取,而 Object 的键值对个数只能手动计算。

Object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。

ES6 字符串

ES6 新增了子串的识别方法,三个方法只返回布尔值,传入了正则表达式而不是字符串,会抛出错误。

1、字符串的识别

ncludes():判断是否找到参数字符串。

startsWith():判断参数字符串是否在原字符串的头部。

endsWith():判断参数字符串是否在原字符串的尾部。

2、字符串重复

repeat():返回新的字符串,表示将字符串重复指定次数返回。

3、字符串补全

padStart():返回新的字符串,表示用参数字符串从头部(左侧)补全原字符串。

padEnd():返回新的字符串,表示用参数字符串从尾部(右侧)补全原字符串。

4、模板字符串

模板字符串相当于加强版的字符串,用反引号 `,除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式。

let string1 =  `Hey,
can you stop angry now?`;
console.log(string1);
// Hey,
// can you stop angry now?

 5、标签模板

alert`Hello world!`;
// 等价于
alert('Hello world!');

ES6 数值 

二进制:前缀 0b 或 0B 。

八进制:前缀 0o 或 0O 。

Math 对象的扩展

Math.cbrt:用于计算一个数的立方根。

Math.imul:两个数以 32 位带符号整数形式相乘的结果,返回的也是一个 32 位的带符号整数。

Math.hypot:用于计算所有参数的平方和的平方根。

Math.clz32:用于返回数字的32 位无符号整数形式的前导0的个数。

Math.trunc:用于返回数字的整数部分。

Math.fround:用于获取数字的32位单精度浮点数形式。

Math.sign:判断数字的符号(正、负、0)。

Math.expm1:用于计算 e 的 x 次方减 1 的结果,即 Math.exp(x) - 1 。

Math.log1p:用于计算1 + x 的自然对数,即 Math.log(1 + x) 。

Math.log10:用于计算以 10 为底的 x 的对数。

Math.log2:用于计算 2 为底的 x 的对数。

双曲函数方法

Math.sinh(x):双曲正弦。

Math.cosh(x):双曲余弦。

Math.tanh(x):双曲正切。

Math.asinh(x):反双曲正弦。

Math.acosh(x):反双曲余弦。

Math.atanh(x):反双曲正切。

ES6 对象属性和方法简写

当对象的属性和值变量相同时,可简写

属性简写:

let age=9;
let num=2;
let obj={
    age:age,
    num:num
}

等价于:let obj={age,num};

方法简写:

let obj = {
    say:function(){}
}

等价于:
let obj={
    say(){};
}

ES6 ...展开运算符

展开运算符,把参数展开为用逗号分隔开的参数序列

1 数组展开

let arr1=[1,3,5];
let arr2=[4,5,6];
let arr=[
    ...arr1,
    ...arr2
]

2 对象展开

let obj1={
    num:6,
    age:9
};
let obj2 = {
    name:”鲁迅”
};
let obj={
    ...obj1,
    ...obj2
}

或者
let obj=$.extend({},obj1,obj2);

运算结果:
obj={
    num:6,
    age:9,
    name:”鲁迅”
}

ES6 数组解构赋值

数组解构,是根据左右两侧的变量与值的顺序一一对应起来的。

情况1:let[a,b]=[5,9];

等价于:
let a=5;
let b=9

情况2:let[a,b,c]=[2,,4];

等价于:
let a=2;
let b;//undefined
let c=4;

ES6 对象解构

对象解构,通过左侧变量名和右侧键名对应起来。

let{a,b}={
    b:6,
    a:”你好”
}

等价于
let a=”你好”;
let b=6;

ES6 箭头函数

箭头函数,是es6新增的一种函数定义方式,语法简洁,this指向明确。根据参数的不同,会有很多种写法:

1、没有参数的时候

var fn = ()=>{
}
若函数体只有一行代码,并且是返回值,则花括号可以省略。
var fn = ()=>5;

2、一个参数

语法1:
var fn=(a)=>{
}

语法2:小括号可省略
var fn = a =>{
}

3、多个参数

var fn = (a,b,c) =>{
}

ES6 promise

promise是es6新增的一个对象,它许诺未来会执行某个操作,它的出现是为了解决异步请求层层嵌套引起的地狱回调问题。

resolve:使状态走向成功,调用then方法;

reject:使状态走向失败,调用catch方法;

promise共有3个状态,分别是:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。

function getData(url){
    return new Promise((resolve,reject)=>{
        $ajax({
            url:url,
            success:r=>{
                return resolve(r);
            }
        })
    })
}

ES6 dos命令

1、如何进入dos窗口

win+r打开运行窗口;输入cmd,回车。

2、常用的dos命令

md:文件夹名,创建文件夹。

dir:列出当前目录下的所有文件、文件夹。

cd..:返回上层目录。

cd:文件夹名,进入指定文件夹。

cls:清屏。

磁盘名::进入指定磁盘根目录。

ES6 async 函数

1、async

async 是 ES7 才有的与异步操作有关的关键字。async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。

async function name([param[, param[, ... param]]]) { 
    statements 
}

name:函数名称。

param:要传递给函数的参数的名称。

statements:函数体语句。

2、await

await 操作符用于等待一个 Promise 对象, 它只能在异步函数 async function 内部使用。

[return_value] = await expression;

expression:一个 Promise 对象或者任何要等待的值。

await针对所跟不同表达式的处理方式:

Promise 对象:await 会暂停执行,等待 Promise 对象 resolve,然后恢复 async 函数的执行并返回解析值。

非 Promise 对象:直接返回对应的值。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值