ES6知识点整理之函数数组参数的默认值及其解构应用示例

ES6知识点整理之函数数组参数的默认值及其解构应用示例

函数参数的默认值

在ES6之前,函数的参数如果没有传入值,则默认为undefined。

function func(a, b) {
  console.log(a, b);
}

func(1) //输出:1 undefined

在ES6中,函数的参数可以设置默认值,当没有传入该参数时,将使用设定的默认值。默认值可以是任何类型的值,包括函数调用、对象和数组等。

function func(a, b=2) {
  console.log(a, b);
}

func(1) //输出:1 2

如果一个参数的默认值是一个表达式,则每次函数被调用时,都会重新计算表达式的值。这意味着不能将它们放在循环或条件中。

function func(a, b=getB()) {
  console.log(a, b);
}

function getB() {
  return 2;
}

func(1) //输出:1 2

函数参数的解构赋值

在使用函数的参数时,我们通常会使用解构赋值的方法。ES6允许将对象和数组作为函数参数,同时使用解构赋值来提取参数的值。

对象参数的解构赋值

function func({a, b}) {
  console.log(a, b);
}

func({a:1, b:2}) //输出:1 2

当然我们可以给参数设置默认值:

function func({a=0, b=2}) {
  console.log(a, b);
}

func({a:1}) //输出:1 2

如果我们想把参数作为一个整体,而非解构它们,我们可以将它们包装在括号中:

function func({a, b} = {}) {
  console.log(a, b);
}

func() //输出:undefined undefined

数组参数的解构赋值

使用数组作为参数时,可以用解构赋值来提取参数的值。但是需要注意的是,数组的元素是按照顺序对应的,而对象的属性则是无序的。

function func([a, b]) {
  console.log(a, b);
}

func([1, 2]) //输出:1 2

同样,我们可以给数组参数设置默认值:

function func([a=0, b=2]) {
  console.log(a, b);
}

func([1]) //输出:1 2

如果我们不想提取所有的元素,可以使用圆括号来只提取部分元素:

function func([a, , b]) {
  console.log(a, b);
}

func([1, 2, 3]) //输出:1 3

如果传入的参数不是一个数组,将会在解构时抛出一个错误。

示例

例子1 - 计算圆的面积

我们可以使用默认参数将圆的半径设置为1:

function getAreaCircle(radius = 1) {
  return Math.PI * Math.pow(radius, 2);
}

console.log(getAreaCircle());    // 3.141592653589793
console.log(getAreaCircle(2));   // 12.566370614359172

例子2 - 交换变量的值

使用解构赋值来实现这个目前也很简单:

let a = 1, b = 2;

[b, a] = [a, b];

console.log(a, b);  // 2 1

这样可以让代码可读性更高。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ES6知识点整理之函数数组参数的默认值及其解构应用示例 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Js参数值中含有单引号或双引号问题的解决方法

    Js参数值中含有单引号或双引号问题的解决方法可以通过转义字符进行转义。以下是详细的攻略: 方法一:使用转义字符 在引号前加上反斜杠(\)作为转义字符即可解决问题。如果参数值中含有单引号,则用反斜杠转义单引号(\’),如果参数值中含有双引号,则用反斜杠转义双引号(\”)。 例如: let name1 = "Tom’s cat"; // 包含…

    JavaScript 2023年6月11日
    00
  • javascript开发随笔二 动态加载js和文件

    我将详细讲解一下“javascript开发随笔二 动态加载js和文件”的完整攻略。 什么是动态加载js和文件? 动态加载指的是在页面运行时动态地加载一些脚本或文件。相比静态加载,在需要的时候才加载脚本或文件,可以有效提高页面的加载速度和响应速度。 如何动态加载js和文件? 动态加载js脚本 要动态加载一个js脚本,可以使用document.createEle…

    JavaScript 2023年5月27日
    00
  • Java使用正则表达式匹配获取链接地址的方法示例

    下面是“Java使用正则表达式匹配获取链接地址的方法示例”的详细攻略: 1. 简介 在HTML页面中,链接地址是一个常见的元素。使用正则表达式可以快速地匹配出所有链接地址或者特定类型的链接地址。Java中的正则表达式使用Pattern和Matcher类进行实现。 2. 获取网页源代码 在Java程序中,获取网页源代码可以使用Java中自带的URLConnec…

    JavaScript 2023年6月10日
    00
  • react-router JS 控制路由跳转实例

    下面我将为您详细讲解”react-router JS 控制路由跳转实例”的攻略步骤。 步骤一:安装react-router 在项目中安装react-router-dom依赖包,react-router-dom是基于React的DOM封装,提供了一些跟浏览器url地址相关的组件。 npm install react-router-dom –save 步骤二:…

    JavaScript 2023年6月11日
    00
  • 浅谈前端JS沙箱实现的几种方式

    浅谈前端JS沙箱实现的几种方式 什么是前端JS沙箱 前端JS沙箱是一种能够隔离和保护页面中各种Javascript代码的运行环境,防止其中不受控制的代码对网页造成损害,同时也保证了JS代码的安全性。实现前端JS沙箱的方式主要有以下几种: 方式一:使用iframe和srcdoc 使用iframe和srcdoc的方式来创建前端JS沙箱,可以让我们构建一个独立的执…

    JavaScript 2023年6月11日
    00
  • js多线程解决方案Web Worker简单说明与实例演示

    Web Worker是一个可以让JavaScript在浏览器上跑多个进程的方案,它可以让JavaScript不阻塞UI线程,大大提高网页的性能和用户体验。Web Worker是HTML5标准里的一部分,目前主流的现代浏览器都支持Web Worker。 Web Worker的基础知识 什么是Web Worker? Web Worker是一种JavaScript…

    JavaScript 2023年5月28日
    00
  • 判断JavaScript中的两个变量是否相等的操作符

    判断JavaScript中的两个变量是否相等的操作符一般有两种:==和===。它们的区别在于比较时是否考虑数据类型。以下是完整的操作攻略: ==操作符 ==操作符会自动转换数据类型,再进行比较。如果有一个操作数是字符串类型,另一个是数字类型,操作符会转换字符串类型为数字类型。如果两个操作数都是引用类型,则比较的是它们的引用。下面是例子: console.lo…

    JavaScript 2023年6月10日
    00
  • 微信小程序 自己制作小组件实例详解

    下面是关于“微信小程序自己制作小组件实例详解”的攻略: 什么是小组件 小组件是一种自由组合,具备特定功能的组合、封装后的组件库。作为组件库的一部分,一个好的小组件应该能够在各种应用场景下有良好的兼容和复用性。 制作小组件 1.创建小组件 使用命令行创建小组件(假设小组件名字为 my-component): # 使用命令行创建自定义组件 $ miniprogr…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部