/**
* 函数的扩展
* 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. Android SlidingTabLayout的使用--替代ActionBar的Tab导航

    最近在使用ActionBar的时候,如果使用的是最新版V7包或者最新的SDK平台,就会发现 ActionBar的导航功能已经不建议使用了.主要的原因是ActionBar自带Tab导航自定义性差(只能通 ...

  2. laravel如何查找门脸及注入类方法

    门脸模式 通过 config/app.php 查看别名对应类名 Illuminate\Support\Facades\Log ,查看 LoggerInterface 类文件,得:命名空间+接口名 Ps ...

  3. Android-Emulator使用

    1.查看当前android支持的avd版本 2.创建Emulator avd: android create avd -n magicyu -t 2 -n后面接需要创建avd的名字,-t后面接需要创建 ...

  4. iTOP-iMX6开发板Android系统下LVDS和HDMI双屏异显方法

    迅为iMX6 开发板 android 系统下 LVDS 和 HDMI 双屏异显的使用过程. 注意,iTOP-iMX6 开发板的 android 系统想要实现对 LVDS 和 HDMI 双屏异显功能的支 ...

  5. nginx 新手入门

    Nginx 是一个高性能的http 和反向代理服务器,也是一个代理服务器. Nginx比Apache 更加轻量级,占用的资源少,抗并发,二apache是阻塞型的,在高并发下,nginx更占优势. 我们 ...

  6. 超不清视频播放器-用Python将视频转成字符

    前言 今天分享的这段代码,看起来没啥实际用处,而且有些反潮流,因为现如今大家看视频都追求更高分辨率的超清画质,而我们这个,是一个“超不清”的视频播放器:在控制台里播放视频,用字符来表示画面 不过我觉得 ...

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

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

  8. iptables 防火墙

    运行源地址为192.168.10.10-192.168.10.50 这个网段的机器访问本机的20-25还有80.443.6379端口进来的流量 iptables -A INPUT -p tcp -m ...

  9. 【搜索】P1019 单词接龙

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合 ...

  10. android滚动图片

    关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户& ...