findindex方法_ES6和ES5的区别以及ES6新增的方法

5da2b16f722fd3694e0d49fcc42c1eb4.png

ES6和ES5的区别

  1. ECMAScript5,即ES5,是ECMAScript的第五次修订,在2009年完成标准化;
  2. ECMAScript6,即ES6,是ECMAScript的第六次修订,在2015年完成标准化,也称为ES2015;
  3. ES6是ES5之后的一次改进,相对于ES5更加简洁,提高了开发效率,但是可能有些低版本的浏览器会出现不兼容的现象。

ES6新增的方法

  1. 新增声明命令letconst

在ES6中通常使用let 和const来声明,let表示变量,const表示常量

  • let和const都属于块级作用域,以花括号({})代码块为作用域范围,只能在代码块里面使用,不存在变量提升,只能先声明再使用,否则会undefined报错,在代码块内,在声明变量之前该变量都是不可用的,这种情况在语法上称之为‘暂时性死区’,并且同一个代码块内,不允许重新声明。
  • const声明的是一个常量,在声明的时候就需要赋值。(但是如果const声明的是一个对象,对象所包含的值是可以被修改的,复杂点说,就是对象所指的地址不能变,而变量成员是可以修改的)
  1. 模板字符串(Template String

用一对反引号(``)标识,他可以当做普通字符串使用,也可以用来定义多行字符串,还可以在字符串中嵌入变量,js表达式或函数、变量需要写在${}中。

`<div style='width:100%;height:300px;overflow-y:scroll;overflow-x:hidden;'>${errDiyPriceMSg}</div>`
  1. 函数的扩展
  • 函数的默认参数

ES6为参数提供了一个默认值。在定义函数时变初始化了这个参数,以便在参数没有传递进去的时候使用。

  • 箭头函数

在ES6中,提供了一种简洁的函数写法,就是“箭头函数”。

函数名=(参数)={ } 当函数体内只有一个表达式时,{}和return可以省略,当函数体重形参只有一个时,()也可以省略

箭头函数中的this指向,始终指向箭头函数定义时离this最近的一个函数,如果没有最近函数,那就是指向window。

let index = this.importData.findIndex(t=>t.IdcardNum == x.IdcardNum);
  1. 对象的扩展
  • 对象属性的简写

在ES6中当变量名和属性名一样时,写对象时可以不为属性赋值;

var sunday = 'kobe'
var obj = {sunday}  //  等同于var obj = {sunday:sunday}

var fun = {
   method(){
     return "你好!Kobe"
   }
}        //等同于 var fun = { 
                               method:function(){
                                 return "你好!Kobe"
                               }
                             }
  • Object.keys()方法

获取对象的所有属性名或方法名(不包含原型内容),并返回一个数组。

var obj = {name:'sunday',age:"18",getBasketball(){console.log('我是你的篮球!') }};
console.log(Object.keys(obj))  // ["name","age","getBasketball"]
console.log(Object.keys(obj).length) // 3
console.log(Object.keys(["kobe","anser","利拉德"]))  // ["0","1","2"]  打印出数组下标
console.log(Object.keys("kobe"))  // ["0","1","2","3"]  打印出字符串下标
  • Object.assign()

assign方法将多个源对象的属性和方法都合并到了目标对象上面,可以接受多个参数,第一个参数是目标对象,后面的都是源对象

var target = {}
var obj1 = {name:"kobe"}
var obj2 = {age:"42"}
var obj3 = {sex:"男"}
var obj4 = {age:"43"}
Object.assign(target,obj1,obj2,obj3,obj4);
console.log(target)  // {name:"kobe",age:"43",sex:"男"}  同名属性值会被最后一个替换掉
  1. for ... of 循环
for...of 更多用于特定于集合(如数组和对象),但不包括所有对象。
var arr = ["1","2","3"]
for ( var item of arr){
  console.log(item)
}  
//  1,2,3
  1. Promise (这个打算单独拎出来再仔细写一下,这里给大家简单描述一下)

promise是一步编程的一种解决方案,将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数,也就是回调地狱。

promise有3种状态,Reject 为失败的状态,Pending是在请求中吧,也属于初始状态,Fulfilled为成功状态。

  1. Set数据结构

Set数据结构类似于数组,所有的数据都是唯一的,它本身是一个构造函数。常用的场景就是利用Set去数组去重。

let arr = [12,43,23,43,68,12];
let item = new Set(arr);
console.log(item);//结果输出的是一个对象

//使用Array.from转成数组

let arr = [12,43,23,43,68,12];
let item = Array.from(new Set(arr));
console.log(item);// [12, 43, 23, 68]
  1. async和await

使用 async/await, 搭配 Promise,可以通过编写形似同步的代码来处理异步流程, 提高代码 的简洁性和可读性 async 用于申明一个 function 是异步的,而 await 用于等待一个异步 方 法执行完成

其实还有一些新增的方法,我就没有一一列举了(class 、Symbol、修饰器等)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值