一、参数带默认值函数
1、在函数形参可以赋予函数默认值【即实参严格匹配undefined时,在函数内部使用形参时调用它的默认值】
2、函数name属性 【返回函数名称,无名的函数返回空字符串】
3、函数length属性  【从左往右开始计算函数形参直到碰到带有默认值形参时结束计算,这样计算的形参个数】
eg:

    //普通函数传参
function test(a,b=2,c,d=3){
console.log(a,b,c,d);
}
test(3,4,5); //输出abcd分别为:3,4,5,3
console.log(test.name); //test
console.log(test.length) //
//使用解构传递参数,以对象解构为例
function add({a=2,b}){
//形参 {a=2,b} = {b:5,a:undefined 对象解构与属性顺序无关
console.log(a,b);
}
add({a:undefined,b:5}); //使用对象解构 输出a b为:2 5

4、rest参数
在函数形参那是有扩展运算符接受实参【返回接受的参数组成的数组】
eg:
    function test(a,b,...tail){
        console.log(a,b,tail);    //1 2 [3,4]
    }
    test(1,2,3,4);
    //参数数组解构传递
    function add([a,...tail]){
        console.log(a,tail);    //1 [2,3,4]
    }
    add([1,2,3,4]);
    
二、箭头函数
1、ES6中箭头函数中的this指向为该箭头函数【声明】时所处的父模块作用域中的this指向
2、ES6中箭头函数中的arguments不保存实参,不进行实参的使用
3、不能作为构造函数【其函数内this指向可能不会指向该类实例对象】
eg:

    //箭头函数内部没有this,this指向箭头函数【声明时】的父作用域中的this
function test(){
console.log(this);
return ()=>{ //箭头函数声明在这里【其this指向与test函数中的一样】
console.log(this);
};
} let obj = {
name:'zhangsan',
test:test() //这里会先执行test()函数,然后再将test()函数返回的箭头函数地址赋值给obj的test属性,箭头函数在test()函数中已经声明了
};
obj.test(); //这里执行的是test()函数中返回的箭头函数而不是外面定义的test()函数

ES6 函数的拓展(四)的更多相关文章

  1. ES6函数的拓展

    ES里面现在支持在函数的参数直接给参数赋一个默认值,ES6支持拓展运算符(...)三个英文的点,这个形式如function(...a)这个里面...a可以接受若干的值,这个拓展运算符也可以把若干的值转 ...

  2. ES6必知必会 (二)—— 字符串和函数的拓展

    字符串的拓展 1.ES6为字符串添加了遍历器接口,因此可以使用for...of循环遍历字符串 2.字符串新增的 includes().startsWith().endsWidth() 三个方法用于判断 ...

  3. ES6 随记(3.4.1)-- 函数的拓展(参数默认值,扩展运算符)

    上一章请见: 1. ES6 随记(1)-- let 与 const 2. ES6 随记(2)-- 解构赋值 3. ES6 随记(3.1)-- 字符串的拓展 4. ES6 随记(3.2)-- 正则的拓展 ...

  4. ES6里关于函数的拓展(二)

    一.构造函数 Function构造函数是JS语法中很少被用到的一部分,通常我们用它来动态创建新的函数.这种构造函数接受字符串形式的参数,分别为函数参数及函数体 var add = new Functi ...

  5. ES6 数组方法拓展

    ES6 数组方法拓展 1.Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括E ...

  6. Sql Server函数全解<四>日期和时间函数

    原文:Sql Server函数全解<四>日期和时间函数   日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外, ...

  7. ES6函数扩展

    前面的话 函数是所有编程语言的重要组成部分,在ES6出现前,JS的函数语法一直没有太大的变化,从而遗留了很多问题和的做法,导致实现一些基本的功能经常要编写很多代码.ES6大力度地更新了函数特性,在ES ...

  8. 深入理解javascript函数系列第四篇——ES6函数扩展

    × 目录 [1]参数默认值 [2]rest参数 [3]扩展运算符[4]箭头函数 前面的话 ES6标准关于函数扩展部分,主要涉及以下四个方面:参数默认值.rest参数.扩展运算符和箭头函数 参数默认值 ...

  9. es6函数的rest参数和拓展运算符(...)的解析

    es6的新特性对函数的功能新增加了rest参数和...的拓展运算符.这是两个什么东西呢? 先来看一个问题:如何获取一个函数除了定义的参数之外的其他参数?传统的做法是借助函数的arguments关键字来 ...

随机推荐

  1. 05showLoading配置和 <text>标签的坑 如何发送请求 分享功能和懒加载

    14-电影-列表-需求分析 小程序里面取数据 没有冒号这么一说 加载动画 在对应页面 js文件中 showLoading你可以去看他的配置     // wx.showLoading() 应用在让用户 ...

  2. 浙大&川大提出脉冲版ResNet:继承ResNet优势,实现当前最佳

    浙大&川大提出脉冲版ResNet:继承ResNet优势,实现当前最佳 选自arXiv,作者:Yangfan Hu等,机器之心编译. 脉冲神经网络(SNN)具有生物学上的合理性,并且其计算潜能和 ...

  3. C——letterCounter

    /* 一个统计字母(含大小写)出现次数的C程序 */ #include <stdio.h> int main() { ]; char ch; /* initialization */ ; ...

  4. 基于github发布 个人网站/博客

    我们可以使用GitHub去发布自己的网站了(静态网站), 只要经过简单几步即可.这样小伙伴可以给朋友或面试官展示自己个人项目啦. 第一步:创建一个新仓库 第二步:在仓库选择“Settings”页,找到 ...

  5. 可以在shell脚本中使用哪些类型的变量?

    在shell脚本,我们可以使用两种类型的变量: 系统定义变量 用户定义变量 系统变量是由系统系统自己创建的.这些变量通常由大写字母组成,可以通过“set”命令查看. 用户变量由系统用户来生成和定义,变 ...

  6. MySQL-InnoDB-MVCC多版本并发控制

    一.MySQL可重复读级别下,因为MVCC引起的BUG,下图1为相应的Java代码,其中事务1的生命周期最长,循环开启的事务2.3.4...与事务1并行 ,数据的读取只会成功一次,后面的读不到新增数据 ...

  7. qps.sh

    mysql -p'' -Bse'show global status like "com_%";' > qps.new while true do sleep 0.5 mv ...

  8. java对接微软认证,用oauth2.0实现

    由于官网所说所写的demo比较官方,比较难理解,而且只能到获取到token阶段,没有用户到用户信息.就算理解官网所写的,但是还是不能获取到用户信息,这对于业务系统做单点对接,增加很大的难度,附件代码是 ...

  9. 第25课 std::thread对象的析构

    一. 线程的等待与分离 (一)join和detach函数 1. 线程等待:join() (1)等待子线程结束,调用线程处于阻塞模式. (2)join()执行完成之后,底层线程id被设置为0,即join ...

  10. ApartmentState.STA

    需要设置子线程 ApartmentState 为 STA 模式,但 Task 又不能直接设置 ApartmentState,因此需要用 Thread 来封装一下. using System.Threa ...