最新消息:文章中包含代码时,请遵守代码高亮规范!

es6基本语法

原创文章 user 68浏览 0评论

变量声明

let 和const

不用var, 用const声明只读变量,let声明变量。let和const都是块级作用域

let与const都是只在声明所在的块级作用域内有效。

let声明的变量可以改变,值和类型都可以改变,没有限制。

const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。

const a ;//报错,一旦声明变量,应该立即赋值!!

const b = 2;
b = 3//报错,因为定义常量之后不能成重新赋值!!
image.png
image.png

箭头函数

箭头函数相当于匿名函数,并且简化了函数定义。当你只需要一个只有一个参数的简单函数时,可以使用新标准中的箭头函数,它的语法非常简单:标识符=>表达式。你无需输入function和return,一些小括号、大括号以及分号也可以省略,可在一定程度上减少代码量。 

var sum=()=>1+2;
// 等同于:
var sum=function() {    
  return 1+2; 
};

模块的import 和export

export用于对外输出本模块(一个文件可以理解为一个模块)变量的接口

import用于在一个模块中加载另一个含有export接口的模块。

也就是说使用export命令定义了模块的对外接口以后,其他JS文件就可以通过import命令加载这个模块(文件)。

// a.js
var sex="boy";
var echo=function(value){
  console.log(value)
}
export {sex,echo} 
//但是不能用export{sex: "boy", echo:function(){}}. 

//通过向大括号中添加sex,echo变量并且export输出,就可以将对应变量值以sex、echo变量标识符形式暴露给其他文件而被读取到
//不能写成export sex这样的方式,如果这样就相当于export "boy",外部文件就获取不到该文件的内部变量sex的值,因为没有对外输出变量接口,只是输出的字符串。

// b.js
通过import获取a.js文件的内部变量,{}括号内的变量来自于a.js文件export出的变量标识符。
import {sex,echo} from "./a.js" 
console.log(sex)   // boy
echo(sex) // boy
a.js文件也可以按如下export语法写,但不如上边直观,不太推荐。

// a.js
export var sex="boy";
export var echo=function(value){
  console.log(value)
}

//因为function echo(){}等价于 var echo=function(){}所以也可以写成
export function echo(value){
   console.log(value)
}

ES6数组

forEach方法

var name = ['张三', '李四', '王五'];
['张三', '李四', '王五'].forEach((v,l,k) => {
	console.log(v);
	console.log(l);
	console.log(k);
})

forEach()就是遍历,循环作用。

map方法: map 是表示映射的,也就是一一对应,遍历完成之后会返回一个新的数组,但是不会修改原来的数组

var a1=['a','b','c'];
var a2=a1.map(function(item,key,ary){
  return item.toUpperCase();
});
console.log(a1);// ['a','b','c'];
console.log(a2); //['A','B','C'];

Promise

Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。

Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。

Promise对象有以下两个特点:

(1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成,又称 Fulfilled)和Rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字的由来,它的英语意思就是“承诺”,表示其他手段无法改变。

(2)一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从Pending变为Resolved和从Pending变为Rejected。只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果。就算改变已经发生了,你再对Promise对象添加回调函数,也会立即得到这个结果。这与事件(Event)完全不同,事件的特点是,如果你错过了它,再去监听,是得不到结果的。

有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise对象提供统一的接口,使得控制异步操作更加容易

//基本用法:
var promise = new Promise(function(resolve,reject){    
  if(true /*异步操作成功*/ ) {
     resolve(value);
  }else{
     reject(error);
  }
});
//项目中的实例,向后端发起请求
fetch('getMaintainItems',{  
   userId:this.userId
})
  .then(res=>{    
    console.log(res)
  })
  .catch(err=>{    
    this.$message({      
      message:err.error?err.error:'请求失败,请重试',      
      type:'warning'
    })
  })

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/25291.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者Miya的打赏,我们会更加努力!    如果您想成为作者,请点我

发表我的评论
取消评论

表情