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

  • 相关阅读:
    ssh_jar包选择
    去js校验
    CSS
    html(HyperText Markup Language)--超文本标记语言
    Java compiler level does not match解决方法
    linux上面是否有安装redis,redis启动
    mybatis 详解(九)------ 一级缓存、二级缓存
    mybatis 详解(八)------ 懒加载
    mybatis 详解(六)------通过mapper接口加载映射文件
    mybatis 详解(七)------一对一、一对多、多对多
  • 原文地址:https://www.cnblogs.com/rlann/p/7148524.html
Copyright © 2011-2022 走看看