ES6-函数

1.1 默认参数,可以给定义的函数接收的参数设置默认的值 在执行这个函数的时候,如果不指定函数的参数的值,就会使用参数的这些默认的值

function personalInformation(name,age ='22',gender="male"){
    console.log(name);
    console.log(age);
    console.log(gender);
}
personalInformation('xunbie')
/*
xunbie
22
male
*/ 

1.2 展开操作符

把...放在数组前面可以把一个数组进行展开,可以把一个数组直接传入一个函数而不需要使用apply

//传入参数                                          
let print = function(a,b,c){                    
    console.log(a,b,c);                         
}                                               
print([1,2,3]);                                 
print(...[1,2,3]);                              
                                                
// 可以替代apply                                    
let m1 = Math.max.apply(null, [8, 9, 4, 1]);    
let m2 = Math.max(...[8, 9, 4, 1]);             
                                                
// 可以替代concat                                   
let arr1 = [1, 3];                              
let arr2 = [3, 5];                              
let arr3 = arr1.concat(arr2);                   
let arr4 = [...arr1, ...arr2];                  
console.log(arr3,arr4);                         
                                                
//类数组的转数组                                       
function max(a,b,c) {                           
    console.log(Math.max(...arguments));        
}                                               
max(1, 3, 4);                                   
/*
[ 1, 2, 3 ] undefined undefined
1 2 3
[ 1, 3, 3, 5 ] [ 1, 3, 3, 5 ]
4
*/

1.3 剩余操作符

剩余操作符可以把其余的参数的值都放到...rest的数组里面

let rest = function(a,...rest){
    console.log(a,rest);
}
rest(1,2,3);
// 1 [ 2, 3 ]

1.4 解构参数

let destruct = function({name,age}){
    console.log(name,age);
}
destruct({name:'yrx',age:22});
// yrx 22

1.5 函数的名字 ,ECMAScript 6 给函数添加了一个name属性

var desc = function descname(){}
console.log(desc.name);
// descname

1.6 箭头函数,箭头函数简化了函数的的定义方式,一般以 "=>" 操作符左边为输入的参数,而右边则是进行的操作以及返回的值inputs=>output

['a','b',3].forEach(val => console.log(val))

输入参数如果多于一个要用()包起来,函数体如果有多条语句需要用{}包起来

箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。 正是因为它没有this,从而避免了this指向的问题。

var person = {
    name:'yrx',
    getName:function(){
        -        setTimeout(function(){console.log(this);},1000); //在浏览器执行的话this指向window
        +        setTimeout(() => console.log(this),1000);//在浏览器执行的话this指向person
    }
}
person.getName();
/*
Timeout {
  _called: true,
  _idleTimeout: 1000,
  _idlePrev: null,
  _idleNext: null,
  _idleStart: 173,
  _onTimeout: [Function],
  _timerArgs: undefined,
  _repeat: null,
  _destroyed: false,
  [Symbol(asyncId)]: 5,
  [Symbol(triggerAsyncId)]: 1 }
{ name: 'yrx', getName: [Function: getName] }
*/

个人博客地址:https://xunbie.com  寻别-余荣宪个人博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值