ES6__函数的扩展
/**
* 函数的扩展
* 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__函数的扩展的更多相关文章
- ES6 - Note3:数组、对象与函数的扩展
一.数组的扩展,ES6在数组扩展了一些API,以实现更多的功能 1.Array.from:可以将类数组和可遍历的数据结构转换成真正的数组,如下所示 var a = { '0':1,'1':1,leng ...
- ES6入门之函数的扩展
函数js原有的: 属性:arguments[].caller(调用该函数的引用,注意与callee分别开,callee指的是调用函数本身经常在递归中出现).length(形参个数).prototype ...
- 编译器对C++ 11变参模板(Variadic Template)的函数包扩展实现的差异
编译器对C++ 11变参模板(Variadic Template)的函数包扩展实现的差异 题目挺绕口的.C++ 11的好东西不算太多,但变参模板(Variadic Template)肯定是其中耀眼的一 ...
- sqlserver 只有函数和扩展存储过程才能从函数内部执行
一个SQLServer的自定义函数中调用一个自定义的存储过程,执行此函数后发出如下提示:“只有函数和扩展存储过程才能从函数内部执行". 原因:函数只能使用简单的sql语句,逻辑控制语句,复杂 ...
- ES6_入门(6)_函数的扩展
// 2017/7/22 /*ES6函数的扩展*/ //ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; ...
- ES6的新特性(7)——函数的扩展
函数的扩展 函数参数的默认值 基本用法 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; console ...
- php 函数追踪扩展 phptrace
php 函数追踪扩展 phptrace 介绍 phptrace 是一个低开销的用于跟踪.分析 php 运行情况的工具. 它可以跟踪 php 在运行时的函数调用.请求信息.执行流程.并且提供有过滤器.统 ...
- ES6学习(二):函数的扩展
chapter07 函数的扩展 7.1 函数默认值 7.1.1 参数默认值简介 传统做法的弊端(||):如果传入的参数相等于(==)false的话,仍会被设为默认值,需要多加入一个if判断,比较麻烦. ...
- ES6学习笔记(6)----函数的扩展
参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ 函数的扩展 函数的默认值 : ES6可以为函数指定默认值 (1)指定默认值的两种方式 a.函数参 ...
随机推荐
- CF749D Leaving Auction
题目链接: http://codeforces.com/problemset/problem/749/D 题目大意: 一场拍卖会,共n个买家.这些买家共出价n次,有的买家可能一次都没有出价.每次出价用 ...
- 上交oj1219 重要的逆序数对
题意: https://acm.sjtu.edu.cn/OnlineJudge/problem/1219 思路: 在经典的归并排序求逆序数对算法基础上稍作修改. 实现: #include <io ...
- 洛谷P2762 太空飞行计划问题(最大权闭合图)
题意 有$m$个实验,$n$中器材,每个实验需要使用一些器材 每个实验有收入,每个器材有花费 最大化收入 - 花费 Sol 最大权闭合图的经典应用 从$S$向每个实验连流量为该实验收入的边 从每个器材 ...
- Vue 2.0入门基础知识之全局API
3.全局API 3-1. Vue.directive 自定义指令 Vue.directive用于自定义全局的指令 实例如下: <body> <div id="app&quo ...
- SEO 第三章
SEO第三章 本次课目标: 1. 掌握关键词的选取方法 2. 掌握关键词的竞争强度分析 3. 掌握关键词的拓展方法 一.关键词的选取 选择关键词的时候可以根据公司网站的定位,围绕公司的主营产品或 ...
- Java三大特性之封装
.封装 1.概念:把对象的内部细节封闭起来,只提供操作对象属性的公共方法. 封装是面向对象编程语言对客观世界的模拟:如:电视机,她的内部元件就被封闭起来了,仅仅暴露电视机按钮来供人使用,这样就没有人能 ...
- (转)@Autowire注解与自动装配
http://blog.csdn.net/yerenyuan_pku/article/details/52860713 前面我们已经学会使用@Resource注解注入属性,并且我们还编码剖析了@Res ...
- Navicat连不上MySQL的解决办法
USE mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{your password}'; ...
- 【转】C#中的==、Equal、ReferenceEqual
[转]C#中的==.Equal.ReferenceEqual 转载自: http://www.cnblogs.com/zagelover/articles/2741409.html 1. Refere ...
- 时间函数datetime time
time模块 time翻译过来就是时间,有我们其实在之前编程的时候有用到过. #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time() 获取 ...