zoukankan      html  css  js  c++  java
  • ES6箭头函数及模版字符串

    var f = v => v;

    等同于:

    var f = function(v) {
      return v;
    };

    箭头函数可以与变量解构结合使用:

    const full = ({ first, last }) => first + ' ' + last;
    
    // 等同于
    function full(person) {
      return person.first + ' ' + person.last;
    }

    箭头函数的一个用处是简化回调函数:

    // 正常函数写法
    var result = values.sort(function (a, b) {
      return a - b;
    });
    
    // 箭头函数写法
    var result = values.sort((a, b) => a - b);

    函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象

    箭头函数里面根本没有自己的this,而是引用外层的this

    如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分:

    var sum = (num1, num2) => num1 + num2;
    // 等同于
    var sum = function(num1, num2) {
      return num1 + num2;
    };

    a 模板字符串(template string)

    用反引号(`)来标识起始,用${}来引用变量

    $("#result").append(`
      There are <b>${basket.count}</b> items
       in your basket, <em>${basket.onSale}</em>
      are on sale!
    `);

    b ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面

    function log(x, y = 'World') {
      console.log(x, y);
    }
    
    log('Hello') // Hello World
    log('Hello', 'China') // Hello China
    log('Hello', '') // Hello

     3 其他特性

    1 let为js增加了快级作用域
    2 var命令会发生变量提升现象,即变量可以在声明之前使用,值为undefined,let命令不存在命令提升
    3 let不允许在相同作用域内,重复声明同一个变量
    4 没有块级作用域:a ES5 只有全局作用域和函数作用域,没有块级作用域 内层变量可能会覆盖外层变量 b用来计数的循环变量泄露为全局变量
    const:
    1 const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值
    2 为了保持兼容性,var命令和function命令声明的全局变量,依旧是顶层对象的属性;
    另一方面规定,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性
    解构赋值
    用途:a:交换变量的值 b 从函数返回多个值 c 提取JSON数据 d 函数参数的定义 e

  • 相关阅读:
    ADT Android Development Tools
    ADT下载地址(含各版本)
    如何在eclipse中添加android ADT
    3D MAX 人物骨骼建设
    如何绕开验证码(原理)
    二分查找 java
    Linux命令 cat命令
    Linux如何通过命令查看日志文件的某几行(中间几行或最后几行)
    Linux中显示一个文件最后几行的命令
    深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接
  • 原文地址:https://www.cnblogs.com/rlann/p/7148524.html
Copyright © 2011-2022 走看看