Blogger Information
Blog 14
fans 0
comment 0
visits 6986
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
ES6基本语法,Axios异步网络请求介绍
清风King
Original
765 people have browsed it

一.ECMAScript和JavaScript的关系

ECMA介绍

  1. ECMA:全称European Computer Manufacturers Association。简称ECMA或ES(ES6)
  2. ECMAScript ≈ JS
  3. 用ES6的意义:
    • 对语法的改进,功能的增加
    • 使用Vue、React、小程序、Nodejs等都在用
    • ES6以上版本再等等

1.1 let 和 const 命令

  1. var与let命令、const命令区别

    • var 可以重复声明, let 不能。
    • var 没有块级作用域。块级作用域: {} 、 if() {}、 for() {}
    • var只有在function(){} 中有作用域。
    • var会发所有声明提升,但let不会
  2. let与const的区别

  • let用于声明变量。
  • const用于声明常量,一旦声明无法更改,而且声明时必须给值。但对象中的成员可以改变。

1.2 箭头函数 =>

  1. 实例

    1. 代码1
    2. function add(a,b){
    3. return a+b;}
    4. console.log(add(3,4));

    结果:7

    1. 代码2
    2. const add = (a,b) => a+b;

    结果:7
    代码2 = 代码1。

  2. 使用细节

    • 如果没有参数,或有多个参数用小括号()
    • 只有一个参数可以不用小括号()
    • 如果只有一条语句可以不使用大括号{}和return语句。
    • 箭头函数=>没有自己this,用的this是继承过来的,默认指向在定义时的对象。

1.3 数组中常用方法

  1. filter过滤器
  2. map 映射
  3. reduce 汇总
    . 例子:有一个商品列表:
    1. 将大于10元的商品打折, 取出大于10元的商品
    2. 将10元以上的商品打5折
    3. 打完折的商品总价是多少
  1. 方法1写法:
  2. let goods = [30, 80, 50, 5, 3, 1, 60, 9];
  3. //取出大于10元的商品
  4. let goods1 = [];
  5. for(let n of goods) {
  6. if(n>=10)
  7. goods1.push(n);
  8. }
  9. console.log(goods1);
  10. let goods2 = [];
  11. for(let n of goods1) {
  12. goods2.push(n*0.5);
  13. }
  14. console.log(goods2);
  15. let sum = 0;
  16. for(let n of goods2) {
  17. sum += n;
  18. }
  19. console.log(sum);
  20. 方法2写法:
  21. let goods = [30, 80, 50, 5, 3, 1, 60, 9];
  22. let goods1 = goods.filter(function(n) {
  23. return n >= 10;
  24. })
  25. console.log(goods1);
  26. let goods2 = goods1.map(function(n) {
  27. return n*0.5;
  28. })
  29. console.log(goods2);
  30. let sum = goods2.reduce(function(s, n){
  31. return s+n;
  32. }, 0);
  33. console.log(sum);
  34. 方法3写法:
  35. /*
  36. 第一次,s 参数是 0 , n 是数组中的第一个元素 15
  37. 第二次,s 参数是 是第一次回调函数返回值 , n 是数组中的第二个元素 40
  38. 第三次,s 参数是 是第二次回调函数返回值 , n 是数组中的第三个元素 25
  39. 第四次,s 参数是 是上一次回调函数返回值 , n 是数组中的第二个元素 30
  40. */
  41. let goods = [30, 80, 50, 5, 3, 1, 60, 9];
  42. let sum = goods.filter(n => n >= 10).map(n => n*0.5).reduce((s, n)=>s+n);
  43. console.log(sum);

1.4 模板字符串

1.模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

  1. let title = "学习猿地";
  2. let slogen = "成就自己的只需要一套精品";
  3. let jsx = `
  4. <h1>${title}</h1>
  5. <b>lmonkey</b>
  6. <div><i>${slogen}</i></div>`;
  7. console.log(jsx);

1.5 解构赋值和扩展运算

  1. 解构赋值
    • 左右两边结构必须一样;右边用数组[],左边也是数组[];右边是对象{},左边也是对象{},并且对象中的名称要对应。
    • 右边必须有值
    • 声明和赋值不能分开
      1. let [a,b,c] = ['one','two','three'];
      2. const {age,sex,say,name} ={name:'aaa',age:30,sex:'nan',say(){return 'aaa'}};
  2. 扩展运算符
    • …三点运算符
    • 展开数组
    • 默认参数
    • 也可展开赋值给函数所有参数
      1. let a = [1,2,3];
      2. let b = [...a,4,5,6,...a];
      1. function demo(...args){
      2. return args;
      3. }
      4. demo(5,4,3,2,1);
      }

1.6 ES6的类

  1. ES 6 的 Class(类)概念,与php一样。

    • constructor 是构造方法
    • this关键字代表实例对象
    • 通过extends关键字实现继承
    • super关键字,表示父类的构造函数,用来新建父类的this对象
  2. JSON对象的新应用

  • JSON.stringify() 串行化
  • JSON.parse() 反串行化
  • 简写
    • (属性和值)名字一样可以简写
    • 方法一样可以简写(:function省)

1.7 模块化编程

  1. export命令:用于规定模块的对外接口,用{}。

    一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。可缺省导出default,一个文件中只能有一个。

  2. import命令:用于输入其他模块提供的功能,用{}。

    import命令接受一对大括号,里面指定要从其他模块导入的变量名。大括号里面的变量名,必须与被导入模块(profile.js)对外接口的名称相同。

  3. 如果不使用webpack,需要在html文件中使用type=”module”变成模块,使之独立。

二、Axios异步网络请求

完全可以替代ajax,可理解为ajax的封装,Axios是一个基于promise的HTTP库。

  1. 安装axios:http://bootcdn.cn下载axios,并导入js文件。
    在入口文件中用import导入。

  2. 代码

    1. axios('url').then(res=>{console.log(res);
    2. }).catch(err=>{
    3. console.log(err);
    4. });
  3. 入门应用

    • Get方法(默认)
      1. axios({
      2. url:'http://localhost/axios/api.php',
      3. method:'get',
      4. params:{
      5. name:'username',
      6. }
      7. }).then(res=>{
      8. console.log(res);
      9. });
    • POST方法
    1. axios({
    2. method:'post',
    3. url:'http://localhost/axios/api.php',
    4. headers: {'content- type': 'application/x-www- form-urlencoded' },
    5. data:{
    6. name:'username',
    7. age:'30',
    8. sex:'aaa'
    9. }
    10. }).then(res=>{
    11. console.log(res);
    12. });
  4. Axios的请求
    • axios.request(config)
    • axios.get(url[, config])
    • axios.delete(url[, config])
    • axios.head(url[, config])
    • axios.post(url[, data[, config]])
    • axios.put(url[, data[, config]])
    • axios.patch(url[, data[, config]])

5.Axios全局配置
建议配置时必须加,在Axios请求时可以简单化。

  1. axios.defaults.baseURL="http://127.0.0.1";
  2. axios.defaults.timeout=5000;
  3. axios.defaults.headers.post['content-type']='application/x-www-form-urlencoded';
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post