一、参数带默认值函数
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. Python3——根据m3u8下载视频(下)之requests

    下半场ING,好吧,本来准备明天写的(拖延真快乐.gif),请然而,,,早上八点多跑公司加班(看书+学习)去,发现大门上挂着一把大锁,我只想说门禁是拿来看的嘛,加啥破锁o(╥﹏╥)o,严重打击了好员工 ...

  2. Linux命令——trap

    简介 trap是shell内置命令,它对硬件信号和其他事件做出响应.trap定义并激活信号处理过程,信号处理过程是当shell接收信号或其他特殊条件时要运行的处理过程. 语法 trap [-lp] [ ...

  3. mac os下切换pip3国内源并安装requests库

    在使用Python的时候,经常会用到pip来安装模块,但是默认的下载源实在是特别慢,经常install的时候还会因为速度的原因直接报错,因此我们可以选择将下载源更改为国内的,这样就可以提高我们的下载速 ...

  4. streamsets 官方默认镜像中文支持问题

    以前在测试streamsets 的时候就发现中文乱码,后边也每太注意,以为支持问题,今天跑了下单元 测试代码,以及使用本机运行,发现都没有问题,然后运行以前的配置,使用jjs 发现模式的编码为 ANS ...

  5. [LeetCode] 287. Find the Duplicate Number 寻找重复数

    Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), pro ...

  6. Django初见

    什么市WEB应用? 所谓的web应用就是我们基于浏览器打开的一个个网页(对应网址得到的内容) 软件开发架构 C/S架构: 客户端/服务端 B/S架构:浏览器/服务器 所有的B/S架构本质上就是C/S架 ...

  7. 实验一 Linux基础与Java开发环境

    实验一 (一)实验内容 基于命令行和IDE(Intellj IDEA 简易教程http://www.cnblogs.com/rocedu/p/4421202.html)进行简单的Java程序编辑.编译 ...

  8. windows php 下的各个版本的资源下载地址

    历史版本: https://windows.php.net/downloads/releases/archives/ 新版本: https://windows.php.net/download/ 找的 ...

  9. Qt Quick 常用元素:ComboBox(下拉列表) 与 ProgressBar(进度条)

    一.ComboBox ComboBox,即下拉列表框,由一个列表框和一个标签控件(或编辑控件)组成.ComboBox 的下拉列表是使用 Menu 实现的,列表内的每个条目对应一个 Menultem. ...

  10. 解决SpringDataJpa实体类中属性顺序与数据库中生成字段顺序不一致的问题

    一.在application.yml配置中添加数据库根据实体类自动创建数据库表的配置(这里数据库采用MySQL数据库) jpa: database: MYSQL show-sql: true #Hib ...