ES6语法ECMA总结

45 篇文章 0 订阅
40 篇文章 1 订阅

promist

//当需要调两个接口成功以后再执行的操作,可使用Promise.all()方法
 	  await Promise.all([this.init(), this.record()])
      wx.setNavigationBarTitle({
        title: this.data.name,
      })

定义变量

let 相当于var
const 定义常量
区别

  1. 块级作用域 {}内 if(){} for(){}
  2. 没有预解析,不存在变量提升,必须先定义再使用,否则报错
  3. 在同一个作用域中,变量不能重复定义,但是可以重新赋值
  4. const定义变量不能修改,所以必须定义就赋值

解构赋值

数组
左右结构一致

	 let [a,b,c]=[2,4,6]
     let [a, [b, c]] = [1, [2, 3]];
     console.log(a,b,c)   //2 4 6   //1 2 3
	应用:交换数据
	let a = 1;
	let b = 2;
	[a, b] = [b, a];
	console.log(a, b);   // 2 1

对象
a:num 起别名
d=‘暂无数据’ 默认数据

let { a:num, b, c,d=‘暂无数据’ } = {
    a: 11,
    b: 99,
    c: 10
}
console.log(num, b, c);   // 11 99 10

注意:top代表window

模板字符串

let age=18;
console.log(`我今年${age}岁了`)

查找字符

  • indexOf() 如果存在返回的是字符的索引,若不存在返回-1
let str = 'abckoejofiw';
console.log(str.indexOf('iw'));  // 9
  • includes() 存在返回true,不存在返回false
let str = 'abckoejofiw';
console.log(str.includes('x'));   // false
  • 判断浏览器
if(navigator.userAgent.includes('chrome')){
	console.log('谷歌')
}else{
    console.log('不是谷歌')
}
  • 判断以谁开头结尾 true/false
 - str.startsWith('开头')   
 - str.endsWith('结尾')
  • 重复字符串 str.repeat(2) // 2为重复次数
  • 填充字符串
    str.padStart(2,'x')   以‘x’从前填充为2位数
	str.padEnd(2,'x')   以‘x’从后填充为2位数

函数

  • 函数的默认参数
function( a, b="默认参数" ){}
function(  {a,b}={} ){}
  • 箭头函数
let show =  ()=>{
    //this指向函数外部的this
    //箭头函数里边没有arguments,但可以用...args
    //箭头函数不能作为构造函数
}
  • 函数的参数的变量默认已经定义,不能重复定义

扩展运算符 (重置reset运算符) …

  • 作用一 : 扩展
 - 展开数组 ...[a,b,c]=a,b,c
let  arr=[1,2,3]
console.log(...arr)   // 1 2 3

 - 重置数组   ...a == arguments
function show(...a){
		consle.log(a)   // [1,2,3,4]
}
show(1,2,3,4)    

 - 剩余数组
function show(a,b,...c){
		consle.log(a,b,c)   // 1 2 [3,4] 
}
show(1,2,3,4)  

 - 复制数组
 let arr=[1,2,3];
 let arr2=[...arr];
 console.log(arr,arr2)  

比较变量是否相等

1== 会自动转换数据类型
2===  
		+0===-0 //true  
		NaN===NaN  //false

Object.assign(target, source1, source2)合并对象

1、如果合并的对象中有键名相同,后者会覆盖前者
2、合并参数的首位如果不是对象,会自动转化为对象,但是不能转化的会报错,例如undefined和null,数值,字符串和布尔值,所以使用的时候要考虑第一个会不会出现这种情况,所以解决方法:拼接一个空对象 Object.assign({},obj)
3、这些非对象参数不在首位就不报错,会自动跳过,只有字符串会变成对象'ab'===>{'0':'a','1':'b'}

let obj = {a: 1};
Object.assign(obj, undefined) === obj // true
Object.assign(obj, null) === obj // true
3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小曲曲

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

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

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

打赏作者

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

抵扣说明:

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

余额充值