• es6


    let 命令

    1.块内有效,块外声明的变量调用报错,var则返回正常值

    2.for循环中适用,for外报错

    3.let在for中相当于父作用域

        for (let i = 0; i < 3; i++)

      {let i = 'abc';

      console.log(i); }

    // abc // abc // abc

    4.不存在变量提升

         var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。

    为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错

    const命令

          const声明的只是一个只读常量,一旦声明则值不变;

      const声明变量就必须立即初始化,不能以后再再赋值,否则报错;

            与let一样,变量不提升,不能重复声明,只在块内作用域有效;

    箭头函数

      f=u=>v 等价于 var f = function(v)

            { return v; };

    尾调用:function f(x){

         return g(x);

         }

    try...catch

    传统的写法是catch语句必须带有参数,用来接收try代码块抛出的错误。

    !!!!!!set和Map很重要

    set:。它类似于数组,但是成员的值都是唯一的,没有重复的值。

    const s = new Set();
    
    [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));
    
    for (let i of s) {
      console.log(i);
    }
    // 2 3 5 4

    Set 函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。

     map是键值对的集合

    promise对象

     Promise 是异步编程的一种解决方案

    简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果

    Promise对象有以下两个特点。

    (1)对象的状态不受外界影响,只有结果会改变状态:pending(进行中)、fulfilled(已成功)和rejected(已失败);

    var promise = new Promise(function(resolve, reject) {
      // ... some code
    
      if (/* 异步操作成功 */){
        resolve(value);
      } else {
        reject(error);
      }
    });
    

    Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。

    promise.then(function(value) {
      // success
    }, function(error) {
      // failure
    })
    promise 与ajax
    new XMLHttpRequest();对象用于在后台与服务器交换数据

    XMLHttpRequest.open()

    初始化 HTTP 请求参数

    (method, url, async, username, password)

     method 参数是用于请求的 HTTP 方法。值包括 GET、POST 和 HEAD。

    POST:用"POST"方式发送数据,可以大到4MB
    GET:用"GET"方式发送数据,只能256KB

    XMLHttpRequest.send()

    发送一个 HTTP 请求

    
    
    var getJSON = function(url) { 
      var promise = new Promise(function(resolve, reject){
        var client = new XMLHttpRequest();
        client.open("GET", url);
        client.onreadystatechange = handler;
        client.responseType = "json";
        client.setRequestHeader("Accept", "application/json");
        client.send();
    
        function handler() {
          if (this.readyState !== 4) {
            return;
          }
          if (this.status === 200) {
            resolve(this.response);
          } else {
            reject(new Error(this.statusText));
          }
        };
      });
    
      return promise;
    };
    
    getJSON("/posts.json").then(function(json) {
      console.log('Contents: ' + json);
    }, function(error) {
      console.error('出错了', error);
    });
    



  • 相关阅读:
    CentOS 7 网卡命名修改为eth0格式
    Sublime Text3下的markdown插件的安装及配置
    json-lib 之jsonConfig详细使用(转载写的不错)
    IDEA快捷键【收藏】
    阿里云安装nginx 和 php-fpm
    sed 神器
    非root模式下安装mysql php小记
    一个不错的vim配置
    sublime安装sftp和ctags插件
    取得某个数组前key大 PHP实现
  • 原文地址:https://www.cnblogs.com/z-x-y-21/p/7709562.html
Copyright © 2020-2023  润新知