微信小程序 笔记13 ES6语法

目录

一些历史

ECMAScript和JavaScript

ES6与ECMAScript2015的关系

ES6语法

定义变量的新关键字

let

const

函数

默认参数

箭头函数

Promise风格的调用


一些历史

ECMAScript和JavaScript

ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript)。日常场合,这两个词是可以互换的。

ES6与ECMAScript2015的关系

ES6既是一个历史名词,也是一个泛指,含义是5.1版以后的JavaScript的下一代标准,涵盖了ES2015、ES2016、ES2017等等,而ES2015则是正式名称,特指该年发布的正式版本的语言标准。

总的来说,ES6是ECMAScript6的简写,ECMAScript是JavaScript的标准,ECMAScript 6泛指“下一代JavaScript语言”,具体每年发布的都有自己的专属名称,比如2015年发布的则为ESMAScript 2015。目前说的 ES6 语法,一般值得都是ESMAScript2015版。

ES6语法

定义变量的新关键字

let

let跟var一样,也是用来定义变量,但是他比var更加的安全,体现在以下两点:

  1. 不会出现变量提升的情况
  2. 只在当前代码块内有效

不出现变量提升的意思就是在定义在使用之后会报错。

但是注意小程序中不能真正解析ES6语法,他只是借助了第三方工具将ES6语法转成ES5语法运行的,在底层也是用var来代替let的,所以依然会发生变量提升。

只在块内有效:

for(var i = 0;i < 5;i++)
{
    console.log(i)
}
console.log(i)

这样写在块外面也会输出i的值,这显然是不合理的。那么如果使用let:

for(let i = 0;i < 5;i++)
{
    console.log(i)
}
console.log(i)

这样在块外面,会输出undefined。

const

const是用来定义常量的,常量是一旦定义好了以后,就不能够再修改了。

const只是用来限制指向的内存地址不能改变,但是如果这个内存地址上的数据改变了,是可以的。或者说得直白一点,就是指向的如果是一个可变的容器,容器中的数据改变了,那么是允许的。比如以下代码:

const mylist = [1,2,3];
mylist.push(4);
console.log(mylist);

输出为[1,2,3,4]

函数

默认参数

function fetch(url,method="get"){
// 发送网络请求案例
    console.log(url);
    console.log(method);
}

以后我们在使用fetch函数的时候,可以不传method参数,他会默认使用get。

注意:定义默认参数的时候,默认参数必须要在非默认参数的后面。

箭头函数

有时候,函数作为一个参数变量传进去的时候,为了简化他的写法,我们可以使用箭头函数来实现。

原来的代码:

wx.request({
    url: "http://www.baidu.com/",
    success: function(res){
        // 做一些事情
    }
});

 使用箭头函数:

wx.request({
    url: 'http://www.baidu.com/',
    success: res => {
        //做一些事情
    }
});

箭头函数的语法是

(参数1,参数2) => {代码块}

如果只有一个参数,可以不使用圆括号

a => a+1

另外,如果只有一行代码,那么可以不用花括号。

Promise风格的调用

const p = new Promise(function(resolve,reject){
// 如果执行以下代码,那么会执行下面的then函数
    setTimeout(() => {
        resolve("请求成功");
    },1000);
    // 如果执行以下代码,那么会执行下面的catch函数
    setTimeout(() => {
        reject("请求失败")
    },1000);
    // 如果以上两个代码都执行,那么只会调用下面的then方法,因为resolve的调用在前面。
});
p.then((res) => {
        console.log(res);
    }).catch((error) => {
        console.log(error);
    });

两个函数只能调用一个。

ES6就提供了一个新的语法class来实现类。

class Person{
// 构造函数
    constructor(name,age){
    this.name = name;
    this.age = age;
    }
    sayHello(){
    console.log("hello world");
    }
}

创建对象:

let p = new Person("xxx",20)

定义静态方法

可以使用static关键字定义静态方法,静态方法是只属于类的,不属于对象的。

在函数名之前加上static即可。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值