首页 > 编程语言 >JavaScript全解析——ES6函数中参数的默认值和解构赋值

JavaScript全解析——ES6函数中参数的默认值和解构赋值

时间:2023-05-19 19:23:03浏览次数:46  
标签:ES6 const log 解构 console 默认值 fn

本文为千锋资深前端教学老师带来的【JavaScript全解析】系列,文章内含丰富的代码案例及配图,从0到1讲解JavaScript相关知识点,致力于教会每一个人学会JS!

文末有本文重点总结,可以收藏慢慢看~ 更多技术类内容,主页关注一波!

ES6函数中参数的默认值

给函数的形参设置一个默认值, 当你没有传递实参的时候, 使用默认值

直接使用 赋值符号(=) 给形参赋值即可

function fn(a, b = 100) { 
   console.log(a, b)
 } 
 
 fn() 
 fn(10) 
 fn(10, 20)

ES6的函数默认值

在ES5之前是没有函数默认值的。函数的默认值是ES6的新语法

函数的默认值是给函数的形参设置一个默认值, 当你没有传递实参的时候来使用

书写: 直接在书写形参的时候, 以赋值符号(=) 给形参设置默认值就可以了

任何函数都可以使用

注意: 如果你给箭头函数设置参数默认值, 那么不管多少个形参, 都得写小括号

普通函数

<script>
    // 给形参 a 设置了默认值为 10
    // 给形参 b 设置了默认值为 20
    function fn(a = 10, b = 20) {
        console.log('fn 普通函数内的打印')
        console.log('a : ', a)
        console.log('b : ', b)
    }
    // // 第一次调用
    // // 给 两个形参 赋值了, 那么就不使用默认值了
    fn(100, 200)
    // // 第二次调用
    // // 没有给 b 赋值, 那么 b 就会使用 20 这个默认值
    fn(1000)
    // // 第三次调用
    // // a 和 b 都没有实参进行赋值, 都会使用 默认值
    fn()
</script>
<script>
    //给a设置了默认值,b 没有设置默认值
    function fn(a = 10, b) {
        console.log('fn 普通函数内的打印')
        console.log('a : ', a)
        console.log('b : ', b)
    }
    //调用函数都不传递实参
    fn()
</script>

箭头函数

<script>
    // 箭头函数也可以设置默认值
    // 给形参 a 设置了默认值为 10
    // 给形参 b 设置了默认值为 20
    const fn = (a = 10, b = 20) => {
        console.log('fn 箭头函数内的打印')
        console.log('a : ', a)
        console.log('b : ', b)
        console.log('---------------------')
    }
    // // 第一次调用
    // // 给 两个形参 赋值了, 那么就不使用默认值了
    fn(100, 200)
    // // 第二次调用
    // // 没有给 b 赋值, 那么 b 就会使用 20 这个默认值
    fn(1000)
    // // 第三次调用
    // // a 和 b 都没有实参进行赋值, 都会使用 默认值
    fn()
</script>

随机数案例

<script>
    // 范围内的随机数
    // 定义函数, 两个数字分别默认值设置成 0 和 255
    const randomNum = (a = 255, b = 0) => Math.floor(Math.random() * (Math.abs(a - b) + 1)) + Math.min(a, b)
    console.log(randomNum(20, 30))
</script>

ES6解构赋值

ES6允许按照一定的模式,从数组或对象中提取值,给变量进行赋值,称为解构赋值。

解构赋值分为数组解构对象解构

数组解构

快速的从数组拿到数组中的数据

语法:var [变量1,变量2, 变量3,....] = 数组

会按照数组的索引依次把数组中的数据拿出来,赋值给对应的变量

<script>
    //定义一个数组
    const arr = [100, 200, 300, 400, 500]
        //需求: 单独定义五个变量获取五个数据
    const a = arr[0]
    const b = arr[1]
    const c = arr[2]
    const d = arr[3]
    const e = arr[4]
    console.log(a, b, c, d, e); //100 200 300 400 500
</script>
<script>
    // 解构数组
    const arr = [100, 200, 300, 400, 500]
    //需求: 单独定义五个变量获取五个数据
    const [a, b, c, d, e] = arr
    console.log(a, b, c, d, e) // 100 200 300 400 500
</script>

解构多维数组

数组怎么写, 解构怎么写,把数据换成变量

<script>
    // 1-2. 解构多维数组
    const arr = [1, 2, [3, 4, [5, 6, [7, 8, [9]]]]]
    console.log(arr)
    //需求: 定义变量拿到数据 9
    const a = arr[2][2][2][2][0]
    console.log(a) //9
    //解构
    const [a,b, [c, d, [e, f, [g, h, [i]]]]] = arr
    console.log(i) //9
</script>

对象解构

对象结构就是快速从对象中拿到对象中的数据

语法:var {键名1, 键名2, 键名3, ... } = 对象

按照键名, 依次定义变量从对象中获取指定成员

之前获取对象里面的值

<script>
    // 解构对象
    const obj = {
        name: 'Jack',
        age: 18,
        gender: '男'
    }
    const name = obj.name
    const age = obj.age
    const gender = obj.gender
    console.log(name, age, gender) //Jack 18 男
 </script>

解构获取对象里面的值

<script>
        // 解构对象
        const obj = {
            name: 'Jack',
            age: 18,
            gender: '男'
        }

        // 解构
        const {
            name,
            age,
            gender
        } = obj
        console.log(name, age, gender) //Jack 18 男
</script>

解构的时候可以给变量起一个别名

语法:var { 键名: 别名, 键名2: 别名 } = 对象

注意: 当你起了别名以后, 原先的键名不能在当做变量名使用了, 需要使用这个别名

<script>
    // 解构对象
    const obj = {
        name: 'Jack',
        age: 18,
        gender: '男'
    }
    //  解构的时候起一个别名
    const {
        name: a
    } = obj //等价于 const a = obj.name
    console.log(name, a); //Jake
    //注意name是一个特殊的属性,对象里面自带有改属性所以不会报错
    const {
        age: b
    } = obj //等价一const b = obj.age
    //console.log(age, b); //Uncaught ReferenceError: age is not 
    console.log(b); //18
</script>
<script>
    // 解构对象
    const obj = {
        name: 'Jack',
        age: 18,
        gender: '男'
    }
    const {
        name: a,
        gender,
        age: b
    } = obj
    console.log(a, b, gender) //Jack 18 男
</script>

以上就是我们这篇的全部内容啦!更多技术类干货,戳我主页

视频教程速戳:免费视频教程

标签:ES6,const,log,解构,console,默认值,fn
From: https://www.cnblogs.com/qian-fen/p/17416077.html

相关文章

  • ES6 常见的数组遍历方法
           ......
  • ECMAScript6新特性【函数的扩展(函数参数的默认值、箭头函数、rest 参数、name 属性)
    ......
  • ES6-class类
    类的声明方式1.声明式classA{}2.匿名表达式constA=class{}3.命名表达式,A可以外部访问,A2只能在内部访问constA=classA2{}4.立即执行constA=newclass{constructor(aName){this.aName=aName}sayName(){returnconsole.log(this.aName......
  • ES6剩余参数
    ES6剩余参数arguments的缺陷:如果和形参配合使用,容易导致混乱从语义上,使用arguments获取参数,由于形参缺失,无法从函数定义上理解函数的真实意图ES6的剩余参数专门用于收集末尾的所有参数,将其放置到一个形参数组中。语法:function(...形参名){}举个例子functionsum(........
  • 在C#中使用默认值初始化字符串数组的3种方式
    在本文中,您将学习到新建字符串数组如何设置默认值。数组是可以使用索引访问的相同类型的元素的集合。对于字符串数组,每个元素都是一个字符串值。在C#中创建新的字符串数组时,默认值为null。但是,在某些情况下,您可能希望使用特定的默认值而不是null初始化字符串数组。例如,希望A......
  • ES6参数默认值
    ES6参数默认值在书写形参时,直接给形参赋值,附的值即为默认值这样一来,当调用函数时,如果没有给对应的参数赋值(给它的值是undefined),则会自动使用默认值。举个栗子functionsum(a,b=1,c=2){returna+b+c;}console.log(sum(10,undefined,undefined))//13c......
  • C#属性默认值设置(model实体类)
    关于在MVC中view中设置默认值,可以象如下设置:1、关于ViewModel的部分如果是C# 6.01publicclassTest2{3publicintA{get;set;}=1;4publicstringB{get;set;}="Test";5} 如果语法不支持,只能改回.net2.0的写法。1publicclassUserTy......
  • ES6字符串API
    ES6字符串API以下均为字符串的实例(原型)方法includes判断字符串中是否包含指定的子字符串startsWith判断字符串中是否以指定的字符串开始endsWith判断字符串中是否以指定的字符串结尾repeat将字符串重复指定的次数,然后返回一个新字符串。consttext="成哥是......
  • C++17 解构绑定
    在python中,加入我们有一个函数返回了两个数值,如:defgetData(x,y): returnx,y那么我们在使用这个函数时只需要使用两个新变量去接收函数返回值就可以:a,b=getData(4,5)但是对于C++来说就没有这么方便了,比如一个函数要返回多个数通常会把他们封装成一个pair或者vector容器......
  • 多个Sql字段拼接为一个字段,并判断是否为空,为空时赋默认值
    在这里记录一下怕后面自己忘了,直接看代码吧,这是我数据库需要查询的两张表--库区表select*fromReservoir--仓库表select*fromWarehouse 需要的效果是将同一库区下的仓库的仓库名合并到同一字段中在进行查询,就是下图的效果--将多个查询出的字段拼接到一个......