/**
* 函数的扩展
* 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. 【转】JobScheduler

    JobScheduler JobScheduler是Android L(API21)新增的特性,用于定义满足某些条件下执行的任务.它的宗旨是把一些不是特别紧急的任务放到更合适的时机批量处理,这样可以有 ...

  2. iOS 从相册中拿到 图片名 ,截取后缀,图片名

    //从路径中获得完整的文件名 (带后缀) 对从相册中取出的图片,视频都有效. NSString *fileName = [filePath lastPathComponent]; //获得文件名 (不 ...

  3. ARM 环境下使用azure powershell 从远程blob中拉去vhd 并创建虚拟机

    最近需要从指定公共访问的blob中复制vhd到自己的订阅存储账户,并使用vhd创建AZURE ARM虚拟机(非经典版),而且在portal.azure.cn中无法实现虚拟机映像创建等功能,于是自己使用 ...

  4. sc服务查询

    sc query lanmanse2rver |find /i "state" |find /i "running" || ( echo 该服务没有运行时,要执 ...

  5. windows session logoff时进行处理动作

    目标:Windows session logoff时得到通知,进行一些记录/清理工作 测试平台: win7 x64 logoff时系统会发送WM_ENDSESSION消息,如果某个应用对这个消息的处理 ...

  6. sqlserver2012 offset

    /* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public Lic ...

  7. springboot的多个配置文件的关系

    一般我们在使用springboot时会用到多个环境下的配置文件,例如 application-dev.yml:开发环境 application-uat.yml:用户验收测试环境 application ...

  8. HDU 5414 CRB and String (字符串,模拟)

    题意:给两个字符串s和t,如果能插入一些字符使得s=t,则输出yes,否则输出no.插入规则:在s中选定一个字符c,可以在其后面插入一个字符k,只要k!=c即可. 思路:特殊的情况就是s和t的最长相同 ...

  9. promise 里面的 console.info 打印信息 并不准确,后期有修改对象数据,会覆盖,影响之前的显示

    promise 里面的 console.info 打印信息 并不准确,后期有修改对象数据,会覆盖,影响之前的显示

  10. Oracle清空数据库中数据表数据的方法

    一.简介最近在项目发版测试的时候,导出dmp的时候不小心把开发库中的一些脏数据导出来了,测试那边导入进去之后一堆不规范的数据,为了不影响测试结果,于是总结了一个快速清空数据库数据表所有数据的方法. 二 ...