es6-函数扩展

  • 参数默认值
  • rest参数
function add(...numbers){
  return numbers.sort();
}
  • 严格模式
    ES5开始,函数内部可以设定为严格模式
function f(){
  'use strict';
}

ES2016 做了一点修改,规定只要函数参数使用了默认值,结构赋值、或者扩展运算符,那么函数内部就不能显示设定为严格模式,否则会报错。
这样规定的原因是,函数内部的严格模式,同时适用于函数体和函数参数

  • name属性
function ttt(){}
ttt.name; // ttt
  • 箭头函数
var f = v => v;

// 等同于
var f = function (v) {
  return v;
};

箭头体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
不可以当做构造函数
不可以使用arguments对象
不可以使用yield命令

  • 尾调用优化
    尾调用:某个函数的最后一步是调用另一个函数
    优化:只保留内层函数的调用帧,如果所有的函数都是尾调用,那么完全可以做到每次之行时,调用帧只有一项,这将大大节省内存
    尾递归:尾调用自身,称为尾递归
    尾递归只存在一个调用帧,所以永远不会发生栈溢出错误。
    Es6的尾调用优化只在严格模式之下开启,正常模式是无效的
  • catch命令的参数省略
try{
} catch {
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 上面代码检查函数l...
    呼呼哥阅读 8,850评论 0 1
  • 函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 上面代码检查函数l...
    陈老板_阅读 3,226评论 0 1
  • ES6函数的扩展 1.函数默认值 定义:ES6允许为函数设定默认值,即直接写在参数定义的后面 示例function...
    lijaha阅读 3,085评论 0 0
  • 1.函数参数的默认值 Ⅰ.基本结构 为函数的参数设置默认值 参数变量是默认声明的不能用let或const再次声明 ...
    门门_阅读 1,677评论 0 0
  • 一、函数参数的默认值 1.1、基本用法 ES6 允许为函数的参数设置默认值,直接写在参数定义的后面 ES6 的写法...
    了凡和纤风阅读 2,087评论 0 0