/**
* 函数的扩展
* 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. 使用MySQL统计页面访问及排名

    统计访问页面数量,以分辨率进行排名 SELECT CONCAT(`height` , '*', `width`) AS `resolution` , COUNT(CONCAT(`height`, '* ...

  2. 如何创建你的第一个手机APP?

    本文使用helloworld来作为android的入门项目,通过这个最简单的项目来帮助大家了解android程序开发包含哪些部分,以及如何运行android程序,本次开发android程序的工具是ec ...

  3. Kotlin学习的一些笔记

    Introduction 写在前面 关于本书 这本书适合你吗? 关于作者 介绍 什么是Kotlin? 我们通过Kotlin得到什么 准备工作 Android Studio 安装Kotlin插件 创建一 ...

  4. Linux centos7开机界面出现多个选项

    centos7开机界面出现多个选项时 前面几个选项正常启动,最后一个选项急救模式启动(系统出项问题不能正常启动时使用并修复系统) 在CentOS更新后,并不会自动删除旧内核.所以在启动选项中会有多个内 ...

  5. 5.1 qbxt 一测 T3

    反物质[问题描述] 物理学家有一种假设,世界上存在反物质,反物质遇到正常的物质会发生湮灭. 假设现在有 n 个粒子,每个粒子的种类用一个 m 以内的正整数表示.现在要将这些粒子按一定顺序放入一个封闭空 ...

  6. Socket通信时服务端无响应,客户端超时设置

    背景:在写一个客户端的socket程序,服务端没有返回消息,客户端一直在等待. 目标:我需要设置一个时间,如果超过这个时间客户端自动断开连接.最好是在服务端实现,客户端对我来说不可控.

  7. curl 模拟post请求

    curl -H "Content-Type:application/json" -X POST --data '{"openId":"xxxxxxx& ...

  8. mysql多源复制安装

    多源复制的意思是多主一从. 多源复制的前提是必须要开启GTID模式. master1 :192.168.1.110 master2 :192.168.1.111 slave :192.168.1.15 ...

  9. 16. PLUGINS

    16. PLUGINS PLUGINS表提供有关服务器插件的信息. PLUGINS表有以下列: PLUGIN_NAME :用于在诸如INSTALL PLUGIN和UNINSTALL PLUGIN之类的 ...

  10. scp免密码拷贝和ssh免密码登录

    版权声明:本文为博主原创文章,未经允许不得转载. 在平常的工作中经常在两个服务器之间传输文件,而且经常从本地远程登录服务器,每次都要输入密码显然很没效率,这时候该怎么办呢? 首先假设服务器A和B,要想 ...