ES6的基础用法

本文会着重讲解es6,帮助大家熟悉es6和掌握es6的写法

1,let

        没有变量提升,使用变量在变量定义之前,这点和var有很大区别

        不允许重复声明

        只在块级作用域里有效

        暂时性死区

        console.log(a)  //报错,因为在未定义前调用
        let a = 1
        console.log(a) //1

  2,const

        声明常量 ,表示这个变量在声明后就无法修改

const a = 1
a = 2 //报错,常量声明后无法修改

3,解构赋值

      将右边的数组依次解构出来赋值给前面的数组里的变量

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

 4,扩展字符串

        可以在字符串里直接写入变量,${},不用在像以前一样通过加号来拼接了

let a = "张三"
console.log(`我是${a}`) // 我是张三

5,解构

       

        数组解构:通过  ...数组  将数组的每一项都解构出来,变成原本的数据类型1

let a = [1,2,3,4]
console.log(...a) //1234

        对象解构:通过 {...对象} ,将对象里的每一项都解构出来,但是要注意下,对象解构出来还是对象,所以我们必须得在最外出用{}包裹

        

const obj = {name:"张三",age:18}

console.log({...obj}) //{name:"张三",age:18}

修改name的值

const obj1 = {...obj,name:"李四"}

console.log(obj1)//{name:"张三",age:18}

原理就是,先解构,在对象里在加入一个属性名称相同的值,后覆盖前,达成修改的效果

6.对象扩展

         对象的属性名如果和属性值变量名称是一致的话可以简写

var a=1
var  obj = {a:a}
可以简写为 

var obj = {a}  

console.log(obj) //{a:1}

        如果对象的属性值是函数,可以省略function

var obj = {fh:function(){}}

可以简写为
var obj  =  {fn(){}}

        在函数上做解构赋值

var obj  = {name:"张三",age:18}
function fn (naem,age){
    
    console.log(name,age)
}
调用函数
fn(obj) //"张三",18    。。直接传入一个对象,函数帮我解构了,相当于传入了 fn(obj.name,obj.age),
要注意的是,形参必须和我们对象的属性一样才可以

7.set

        类似于数组,但不是数组,set有个属性,就是里面的数据不能重复所以可以用来给数组去重

var a = [ 1,2,3,4,4]
var b = new Set(a)
在进行解构重新赋值给一个数组,这样就达到了去重的效果

var c  = [...b]

console.log(c)// [1,2,3,4]

      可以通过add方法添加属性

var a = new Set([1,2,3])
a.add(3).add(5)

console.log(a) //[1,2,3,4,5] //添加的时候,如果添加了重复的值,会自动去重

8.map

        map方法,将属性里的每一项单独拿出来,执行回调函数

        

var arr = [1,2,3,4]
arr.map((item)=>{  //item就相当于数组里的每一项的值,所以会依次打印 1,2,3,4
console.log(item)
})

9.promise 异步处理

        处理异步代码

let p=new promise(function(resolve,reject){ //传入参数resolve和reject,这2个是固定写法
		 
		resolve(data) //调用resolve函数,传入我们要异步处理的数据,异步代码执行成功调用
        reject(data) //调用reject函数,传入data,异步代码执行失败调用
		})

p.then(function(data){  //调用.then方法,方法里接收一个函数,函数接收的参数就是我们在上面resolve传递的值
		console.log(data)
	},(data)=>{
    console.log(data)  //当执行错误时就执行这个函数
}) //.then方法里接收2个函数,第一个函数是执行成功后执行,第二个函数是执行失败后执行,这样就能对异步进行处理了,当异步执行完后,才会执行.then方法里的代码。

10.async和await 

        也是用来处理异步

async  function sc(){  //在函数前加上async,将这个函数变为异步函数
		await 异步代码  //这里写异步代码,注意异步代码前面要加await,才能生效
        console.log(123) //当前面的异步代码执行完成后,才会执行console.log(),这样就实现了对异步的处理
		}

你可能感兴趣的:(es6,前端,javascript)