zoukankan      html  css  js  c++  java
  • es6的使用1

    1,箭头函数() => {}
    箭头函数的 this 始终指向函数定义时的 this,而非执行时。
    在请求回调函数或seTimeout里用得比较多。

    2,let命令
    所声明的变量,只在let命令所在的代码块内有效。
    for循环的计数器,就很合适使用let命令
    eg:
    var a = [];
    for (var i = 0; i < 10; i++) {
      a[i] = function () {
        console.log(i);
      };
    }
    a[6](); // 10
    变量ivar命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组a的函数内部的console.log(i),里面的i指向的就是全局的i
    也就是说,所有数组a的成员里面的i,指向的都是同一个i,导致运行时输出的是最后一轮的i的值,也就是10。
    var a = [];
    for (let i = 0; i < 10; i++) {
      a[i] = function () {
        console.log(i);
      };
    }
    a[6](); // 6
    变量ilet声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,所以最后输出的是6(解决闭包解决的问题,如循环给一组元素绑定事件)

    3,Promise
    1)引入vue-resource后,可以基于全局的Vue对象使用http,也可以基于某个Vue实例使用http。(vue-resource支持promise
    // 基于全局Vue对象使用http
    Vue.http.get('/someUrl', [options]).then(successCallback, errorCallback);
    // 在一个Vue实例内使用$http
    this.$http.get('/someUrl', [options]).then(successCallback, errorCallback);
    Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。
    在发送请求后,使用then方法来处理响应结果,then方法有两个参数,第一个参数是响应成功时的回调函数,第二个参数是响应失败时的回调函数(可选)。
    2)then方法可以接受两个回调函数作为参数。第一个回调函数是Promise对象的状态变为resolved时调用,第二个回调函数是Promise对象的状态变为rejected时调用。其中,第二个函数是可选的,不一定要提供。这两个函数都接受Promise对象传出的值作为参数。
    3)then方法返回的是一个新的Promise实例(注意,不是原来那个Promise实例)。这时可以采用链式写法,即then方法后面再调用另一个then方法。
    采用链式的then,可以指定一组按照次序调用的回调函数。这时,前一个回调函数,有可能返回的还是一个Promise对象(即有异步操作),后一个回调函数,就会等待该Promise对象的状态发生变化,才会被调用
    this.$http.post( "login.do", postData)
    .then(res => {
        //...
        return this.$http.post("queryPersonal.do")
    })
    .then(res => {
        //...    
    })
    4,Module
    在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。
    1)模块功能主要由两个命令构成:exportimportexport命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。
    2)import后面的from指定模块文件的位置,可以是相对路径,也可以是绝对路径,.js后缀可以省略。如果只是模块名,不带有路径,那么必须有配置文件,告诉 JavaScript 引擎该模块的位置。
    3)export default命令,为模块指定默认输出。一个模块只能有一个默认输出,因此export default命令只能使用一次。
    4)Node 应用由模块组成,采用 CommonJS 模块规范。
    每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
    CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。
    require方法用于加载模块。require命令用于加载文件,后缀名默认为.js
    如果参数字符串不以“./“或”/“开头,则表示加载的是一个默认提供的核心模块(位于Node的系统安装目录中),或者一个位于各级node_modules目录的已安装模块(全局安装或局部安装)。
  • 相关阅读:
    VUE注意
    https://www.ituring.com.cn/article/211352虚拟DOM
    web.xml中关于Servlet、Filter、Listener的配置
    Eclipse中web项目部署至Tomcat步骤
    BAE百度云平台的mysql数据库的施用(Java)
    MySQL存储过程
    python列表插入--append(), extend(), insert()
    range()函数
    c++拷贝构造函数引用传参
    我居然要写这周的周报???
  • 原文地址:https://www.cnblogs.com/colorful-coco/p/6483992.html
Copyright © 2011-2022 走看看