zoukankan      html  css  js  c++  java
  • 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);
    });
    



  • 相关阅读:
    中台微服务了,那前端如何进行架构设计?
    单体架构&微服务架构&中台服务架构
    SpringCloud oauth2 jwt gateway demo
    SpringCloud-技术专区-认证服务操作
    SpringBoot集成SpringSecurity+CAS
    内核空间与用户空间的通信方式
    函数调用的细节实现
    Kmalloc可以申请的最大内存
    内核调试和系统调用劫持
    stm32最小系统制作(原理图,PCB图,焊接等)
  • 原文地址:https://www.cnblogs.com/z-x-y-21/p/7709562.html
Copyright © 2011-2022 走看看