美文网首页
函数的拓展

函数的拓展

作者: Home_2453 | 来源:发表于2019-03-08 09:00 被阅读0次

1、ES6允许为函数参数设置默认值,即直接卸载参数定义的后面。

function log(x,y = 'world'){
  console.log(x,y);    //hello world
}
log('hello')
//参数变量是默认声明的,所以不能用let或const再次声明。

2、参数的默认作用域

let x = 1;
function f(y = x){
  let x = 2;
  console.log(y);
}
f()    //1

3、rest参数

ES6引入了rest参数(形式为...变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest参数搭配的变量是一个数组,该变量将多余的参数放入数组中。
arguments不是数组,而是一个类似数组的对象。rest参数就不存在这个问题,它就是一个真正的数组,数组特有的方法都可以使用。
注意,rest参数之后不能再有其他参数(即只能是最后一个参数),否则会报错,之前可以有参数。

4、箭头函数

ES6允许使用'箭头'(=>)定义函数。

let f = v => v;
//等同于
var f = function (){
  return v;
}
//如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。
let f = () => 5;
let sum = (num1,num2) => num1 + num2;
//如果箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,并且使用return语句返回。
let foo = (num1,num2) => { return num1* num2 };

由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在对象外面加上括号,否则会报错。

let getTempItem = id => ({ id:id , name : 'temp'});

使用箭头函数注意点:
(1)函数体内的this对象,就是定义时所在的对象,而不是使用时躲在的对象。
(2)不可以当做构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用rest参数代替。
(4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。

相关文章

  • Kotlin-那些好用的标准高阶函数

    Kotlin特性总结的第二篇,上一篇我们谈了拓展函数和拓展属性。本篇我们来学习一下高阶函数。 拓展函数是对类的拓展...

  • 函数的拓展

    参数的默认值 这样写方便了很多,不用像es5那样 x=x || 9那么费劲多写一行代码了 参数变量是默认声明的,所...

  • 函数的拓展

    1、ES6允许为函数参数设置默认值,即直接卸载参数定义的后面。 2、参数的默认作用域 3、rest参数 ES6引入...

  • ES6 数组拓展、对象拓展、函数、类的语法

    一、数组的拓展 二、对象的拓展 三、函数的拓展 四、class基本语法

  • iOS - swift 拓展问题

    在学习swift拓展的时候发现跟OC不同点就是不能和拓展类函数名同名,那如何才能使用拓展来替换原函数名呢? 建议先...

  • 对函数的拓展

    相比C语言,C++的函数功能多了很多特性,使用起来也更加方便。 一、函数重用 在使用逻辑相同但是传入参数不同时不必...

  • 6、函数的拓展

    6 函数的拓展 #6.1 参数默认值 注意: 参数变量是默认声明的,不能用let和const再次声明: 使用参数默...

  • 七,Kotlin常见高阶函数用法

    常见高阶函数用法 1.基础回调 2.拓展函数 3.方法覆盖 4.方法重载 5.泛型拓展 基础回调 简化版本 拓展函...

  • 2021-12-10

    拓展函数 高阶函数 内联函数 lamda表达式 函数式编程 jetpack kotlin 协程 flow bind...

  • 2019-08-05 拓展现有函数

    定义、声明的函数 拓展原型链上的方法

网友评论

      本文标题:函数的拓展

      本文链接:https://www.haomeiwen.com/subject/cbjlpqtx.html