/**
* 函数的扩展
* 1 为函数参数指定默认值
* 2 函数的 rest 参数
* 3 箭头函数
*/ // ------------------------------------------------ // function fn(a, b){
// a = a || 10;
// b = b || 20;
// console.log(a + b);
// } // fn();
// fn(0, 10); // function fn(a = 10, b = 20){
// console.log(a + b);
// }
//
// fn();
// fn(0, 10); // ----------------------------------------------
//rest 参数形式为(“...变量名”),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。 // function sum(){
// var args = arguments;
// var res = 0;
// for(var i=0; i<args.length; i++){
// res += args[i];
// }
// console.log(res);
// }
//
// sum(1, 2, 3, 4, 5);
//只能在...arr之前添加参数
// function sum(a, ...arr, b){
// var res = a;
// for(var i=0; i<arr.length; i++){
// res += arr[i];
// }
// console.log(res);
// }
//
// sum(10, 1, 2, 3, 4, 5); // -----------------------------------------------
// 使用“箭头”(=>)定义函数。 // const fn = a => a;
//
// const fn2 = function (a){
// return a;
// };
//
// console.log(fn(1));
// console.log(fn2(2)); // const fn = (a, b) => a + b;
//
// console.log(fn(1, 2)); // const fn = (a, b) => {
// a = a * 2;
// b = b * 2;
// return a + b;
// };
//
// console.log(fn(1, 2)); // const fn = (a, b) => ({a, b});
//
// console.log(fn(1, 2)); // var arr = [5, 2, 3, 4, 1]; // arr.sort(function (a, b){
// return a - b;
// });
//
// console.log(arr); // arr.sort((a, b) => a - b);
//
// console.log(arr); // 1 箭头函数体内没有自己的this对象,所以在使用的时候,其内部的this就是定义时所在环境的对象,而不是使用时所在环境的对象。 // function fn(){
// setTimeout(function (){
// console.log(this);
// }, 1000);
// setTimeout(() => {
// console.log(this);
// },1000);
// }
//
// var obj = {a: 1};
//
// fn.call(obj); // 不能给箭头函数使用 call apply bind 去改变其内部的this指向 // 2 箭头函数体内没有arguments对象,如果要用,可以用Rest参数代替。 // function fn(){
// setTimeout(() => {
// console.log(arguments);
// }, 1000)
// }
//
// fn(1, 2, 3); // const fn = (...arr) => arr;
//
// console.log(fn(1, 2, 3, 4)); // 3 不可以当作构造函数,不可以使用new命令,否则会抛出一个错误。 // const Fn = (a, b) => a + b; // const f = new Fn(1, 2); 报错 //4.箭头函数不能用Generator函数。

ES6__函数的扩展的更多相关文章

  1. ES6 - Note3:数组、对象与函数的扩展

    一.数组的扩展,ES6在数组扩展了一些API,以实现更多的功能 1.Array.from:可以将类数组和可遍历的数据结构转换成真正的数组,如下所示 var a = { '0':1,'1':1,leng ...

  2. ES6入门之函数的扩展

    函数js原有的: 属性:arguments[].caller(调用该函数的引用,注意与callee分别开,callee指的是调用函数本身经常在递归中出现).length(形参个数).prototype ...

  3. 编译器对C++ 11变参模板(Variadic Template)的函数包扩展实现的差异

    编译器对C++ 11变参模板(Variadic Template)的函数包扩展实现的差异 题目挺绕口的.C++ 11的好东西不算太多,但变参模板(Variadic Template)肯定是其中耀眼的一 ...

  4. sqlserver 只有函数和扩展存储过程才能从函数内部执行

    一个SQLServer的自定义函数中调用一个自定义的存储过程,执行此函数后发出如下提示:“只有函数和扩展存储过程才能从函数内部执行". 原因:函数只能使用简单的sql语句,逻辑控制语句,复杂 ...

  5. ES6_入门(6)_函数的扩展

    // 2017/7/22 /*ES6函数的扩展*/ //ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; ...

  6. ES6的新特性(7)——函数的扩展

    函数的扩展 函数参数的默认值 基本用法 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; console ...

  7. php 函数追踪扩展 phptrace

    php 函数追踪扩展 phptrace 介绍 phptrace 是一个低开销的用于跟踪.分析 php 运行情况的工具. 它可以跟踪 php 在运行时的函数调用.请求信息.执行流程.并且提供有过滤器.统 ...

  8. ES6学习(二):函数的扩展

    chapter07 函数的扩展 7.1 函数默认值 7.1.1 参数默认值简介 传统做法的弊端(||):如果传入的参数相等于(==)false的话,仍会被设为默认值,需要多加入一个if判断,比较麻烦. ...

  9. ES6学习笔记(6)----函数的扩展

    参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ 函数的扩展 函数的默认值 : ES6可以为函数指定默认值 (1)指定默认值的两种方式 a.函数参 ...

随机推荐

  1. [BZOJ2705][SDOI2012]Longge的问题 数学

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2705 首先分析得题目所求$gcd(i,N)$的取值只可能是$N$的因子,则有$$Ans=\ ...

  2. js深拷贝与浅拷贝的区别及实现

    1. 对于基本数据类型 其值在内存中占据着固定大小的空间,并被保存在栈内存中.当一个变量向另一个变量复制基本类型的值,会创建这个值的副本,并且我们不能给基本数据类型的值添加属性.其为深拷贝. 2. 对 ...

  3. UART协议

    通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称作UART,读音/ˈjuːart/)是一种异步收发传输器,是电脑硬件的一部分,将资料由 ...

  4. Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:jar:2.5.1

    Mac上写了一段基于Maven的java代码. 上传Git后,在windows上pull下来,eclipse里面各种错误. ArtifactTransferException:Failure to t ...

  5. elf 文件

    objdump  文件名 readelf   文件名

  6. findFile的用法

    ===============================================   @echo off   echo **No Options:   for /f %%a in (&q ...

  7. Comparator.comparing比较排序

    使用外部比较器Comparator进行排序 当我们需要对集合的元素进行排序的时候,可以使用java.util.Comparator 创建一个比较器来进行排序.Comparator接口同样也是一个函数式 ...

  8. uva1380 A Scheduling Problem

    按紫书来注意这道题的题目给了很大的方便,就相当于验证k是不是答案,不是的话就是k+1 #include<iostream> #include<string> #include& ...

  9. 关于js中的then(盗)

    then()相关的东西包括但不限于:promise,thien.js 虽然还没彻底搞清楚这些个玩意儿,但是  现在知道了  then()是干嘛的了 最主要的,是解决了异步方法立刻返回的问题  这个特性 ...

  10. easyui权限管理

    在easyui上实现权限的管理 所谓权限:指的是系统中的资源,资源包括菜单资源(学习情况报表,账号审核...)以及按钮资源所谓角色:指的是系统中的权限集合(每一个角色对应着哪些权限集合) 1.一星权限 ...