美文网首页
ES6知识点整理——函数扩展

ES6知识点整理——函数扩展

作者: 小姑凉喜欢无脸男 | 来源:发表于2018-09-09 18:52 被阅读15次

函数新增特性:参数默认值、rest参数、扩展运算符、箭头函数、this绑定、尾调用

1.参数默认值
默认值后面不能有没有默认值的变量

{
  function test(x, y = 'world'){
    console.log('默认值',x,y);//hello world  hello kill
  }
  test('hello');
  test('hello','kill');
}

作用域问题
当函数的参数中有设置默认值的参数时,包含参数的圆括号就会形成一个作用域

{
  let x='test';
  function test2(x,y=x){
    console.log('作用域',x,y);//kill kill
  }
  test2('kill');
}
{
  let x='test';
  function test2(c,y=x){
    console.log('作用域',x,y);//kill test
  }
  test2('kill');
}

2、rest参数
...把输入的参数转成数组

{
  function test3(...arg){
    for(let v of arg){
      console.log('rest',v);//rest 1 rest 2 rest 3 rest 4 rest a
    }
  }
  test3(1,2,3,4,'a');
}

3、扩展运算符
将一个数组转为离散的值

{
  console.log(...[1,2,4]);//1 2 4
  console.log('a',...[1,2,4]);a 1 2 4
}

4、箭头函数
es5: function a(){} this的指向是该函数被调用的对象
es6: (参数) => {} 参数只有一个可以省略(),花括号中的表达式作为返回值的时候可以省略{} this的指向是定义时this的指向
1.写法上省去了function 2.this的指向有了新的意义

·由于箭头函数不绑定this, 它会捕获其所在(即定义的位置)上下文的this值, 作为自己的this值
·箭头函数没有arguments,apply,call, bind,因为箭头函数根本没有this,所以改变this指向的函数对他无效,
·箭头函数不能作为构造函数,不能使用new;
·不可以使用yield命令,因此箭头函数不能用作 Generator 函数。

{
  let arrow = v => v*2;
  let arrow2 = () => 5;
  console.log('arrow',arrow(3));//6
  console.log(arrow2());//5

}

5、尾调用
一个函数依赖于另一个函数的操作,建议使用尾调用

{
  function tail(x){
    console.log('tail',x);
  }
  function fx(x){
    return tail(x)
  }
  fx(123)//tail 123
}

相关文章

  • ES6知识点整理——函数扩展

    函数新增特性:参数默认值、rest参数、扩展运算符、箭头函数、this绑定、尾调用 1.参数默认值默认值后面不能有...

  • 007_ES6知识点总结(04)函数的拓展

    ES6知识点整理 [toc] 04 函数的拓展 04.1 函数参数的默认值 ES6支持函数定义时,直接在参数定义后...

  • es6的数值,函数,字符串扩展

    一、es6的数值扩展 二、es6的函数扩展 代码效果:对象解构在函数中的应用 三、es6字符串扩展 常用方法 代码...

  • 2018-04-21

    ES6数组的扩展整理

  • ES6基础笔记二

    ES6 箭头函数、函数扩展 ES5: function add(a,b){return a+b;}console....

  • ES6扩展归纳

    ES6扩展归纳 介绍ES6相比与ES5在原有对象上的扩展,包括字符串、正则、数值、函数、数组、对象等扩展,本文是阮...

  • ES6&函数扩展

    ES6函数的扩展 1.函数默认值 定义:ES6允许为函数设定默认值,即直接写在参数定义的后面 示例function...

  • es6的this的指向性问题详解(接着上一篇文章)

    我们都知道在es6中函数的扩展多了箭头函数,那么箭头函数中的this如何指向呢? 下面我们来看一看: 其实es6的...

  • ES6函数扩展

    function扩展 ES6在原有ES5基础上对function的扩展 1.默认值 ES6 允许为函数的参数设置默...

  • 面试题(2017~now)

    ES6 解构赋值/ 模版字符串 / 箭头函数 / 模块 / 扩展运算符 / 函数默认参数 / Promise/ a...

网友评论

      本文标题:ES6知识点整理——函数扩展

      本文链接:https://www.haomeiwen.com/subject/ugddgftx.html