es6的基本使用


ES6的一些基本使用

变量声明

var let 都可用于声明变量.

区别:1、let:只在let命令所在代码块内有效

​ 2、let 不存在变量提升(内部影响不到外部)

    var b = [];
    for(var j=0;j<10;j++){
        let d=j;
        b[j]=function(){
            console.log(d);
        };
    }
    b[3]() //3

3、let 不允许在相同作用于重复声明

ES5只有全局作用域和函数作用域

ES6引入了块级作用域的概念 作用域块和块之间不受影响
const 也可以声明变量,但是声明的是常量,一旦声明,常量的值就不能改变。

其他和let基本一致
const 声明对象的属性是可以修改的,因为const保存的是对象的地址。

跨模块常量

export 导出
import 引入几种方式
import * as XXX from './xxx';  //使用方式console.log(XXX.输出的常量)

import {} from './xxx'; //引入变量

import xxx from 'xxxxx' ; //引入文件

ES6数组相关 数组解构

es6之扩展运算符 三个点(…)

var [a,b,c]=[1,2,3];

console.log(a,b,c)//1,2,3

let [head,...tail]=[1,2,3,4,5,6,7,8,9];

console.log(head) //1
console.log(tail);//[2,3,4,5,6,7,8,9]

箭头函数

// 通过箭头函数的写法定义
var fnRs = (a,b)=>{
    var rs = a + b;
    alert(rs);
}        
// fnRs(1,2);
// 一个参数可以省略小括号
var fnRs2 = a =>{
    alert(a);
}
fnRs2('曹豆芽1');

// 箭头函数的作用,可以绑定对象中的this(这里的this不是window而是对象)
var person = {
    name:'tom',
    age:18,
    showName:function(){
        setTimeout(()=>{
            alert(this.name);
        },1000)            
    }
}
person.showName();

class

class Poetry {
 ``constructor(){
  ``console.log('曹豆芽1');
 ``}
}
class Person extends Poetry{
 ``constructor(){
  ``super();
  ``console.log('哈哈');
 ``}
}
let ht = new Person();

解构

var ht1 = someArray[0];
var ht2 = someArray[1];
var ht3 = someArray[2];
//解构赋值
let [ht1, ht2, ht3] = someArray; 
//还有下面例子
let [,,ht3] = [1,2,3];
console.log(ht3); //3

let [ht1,...last] = [1,2,3];
console.log(last); //[2,3]

//对象解构
let {name,age} = {name: "ht", age: "17"};
console.log(name); //ht
console.log(age); //17
//注意
let {ept1} = {};
console.log(ept1); //undefined
let {ept2} = {undefined};
console.log(ept2); //undefined
let {ept3} = {null};
console.log(ept3); //null

Promise

1.promise有三种状态,pending、resolved、rejected,对象的状态不受外界影响,只有异步操作的结果可以决定当前是哪一种状态,任何其他操作无法改变这个状态,这也是promise名字的由来,承诺其他手段无法改变状态。
2.一旦状态改变,这个状态就永远不会改变,任何时候都可以取得这个结果,状态会由pending改为resolved,或者pending改为rejected。
3.promise无法取消,一旦新建就会立即执行;
4.如果不设置回调函数,内部的错误不会反应到外部;
5.当处于pending状态的对象无法得知目前进展到哪一个阶段;

var promise = new Promise(function(resolve, reject) {
  // ... some code

  if (/* 异步操作成功 */){
    resolve(value);//将promise的对象从未完成变成成功
  } else {
    reject(error);//将promise的对象从未完成变成失败
  }
});

文章作者: 曹豆芽
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 曹豆芽 !
 上一篇
Uni-app封装请求 Uni-app封装请求
Uni-app封装请求新建一个api.js文件,主要放请求封装的代码 const baseUrl = 'http://172.0.0.1:8080'; const httpRequest = (opts, data) =&g
2020-05-11
下一篇 
node连接mysql数据库实现登录接口 node连接mysql数据库实现登录接口
# node连接mysql数据库实现登录接口 创建node项目在小窗口使用npm创建,生成package.json文件npm init项目结构目录 创建db.js链接mysql数据库const mysql = require('m
2020-04-26
  目录