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

这篇具有很好参考价值的文章主要介绍了JavaScript全解析——ES6函数中参数的默认值和解构赋值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文为千锋资深前端教学老师带来的【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>

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

视频教程速戳:免费视频教程文章来源地址https://www.toymoban.com/news/detail-450632.html

到了这里,关于JavaScript全解析——ES6函数中参数的默认值和解构赋值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES6-解构

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 🍿🍿🍿es6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,称之为解构。 解构是es6的新特性,比ES5代码简介、清晰、减少代码量 ES5中的为变量赋值,只能直接指定值。 es6匹配模式写法

    2024年02月10日
    浏览(39)
  • ES6 解构

    解构的语法中, ... (展开运算符)和 {} (对象字面量)扮演着不同的角色。 ... (展开运算符): 在解构中, ... 被用作展开运算符,用于将数组或对象中的剩余元素获取为一个单独的变量。 示例: 在上述示例中, ...rest 表示剩余的数组元素。变量 a 和 b 分别赋值为数组的

    2024年02月13日
    浏览(48)
  • 【ES6】—解构赋值

    解构赋值:解构赋值就是一种模式的匹配,只要等号两边的模式完全相同的,那么左边的变量就会被赋值对应右边的值 PS:数组解构赋值时,是通过索引的唯一性赋值的 (1). ES5 的写法 (2). ES6 的写法 ES6的写法 当左右两边的结构模式不匹配时,按照左边变量对应索引的位置赋值

    2024年02月12日
    浏览(39)
  • ES6 解构赋值

    解构赋值是一种在编程中常见且方便的语法特性,它可以让你从数组或对象中快速提取数据,并将数据赋值给变量。在许多编程语言中都有类似的特性。 在 JavaScript 中,解构赋值使得从数组或对象中提取数据变得简单。它可以用于数组和对象,并且使用相同的语法来解构它们

    2024年02月14日
    浏览(43)
  • ES6: 解构赋值

    解构赋值是一种快速为变量赋值的简洁语法,本质上仍然是为变量赋值,分为数组解构、对象解构两大类型。 数组解构是将数组的单元值快速批量赋值给一系列变量的简洁语法,如下代码所示: 数组解构赋值: eg1: eg2: eg3: eg4: eg5: 交换2个变量的值 总结: 赋值运算符 = 左侧的

    2024年02月09日
    浏览(61)
  • [ES6]解构与赋值

    解构赋值是对赋值运算符的扩展。 通过解构,可以更加简单的获取复杂对象的属性 解构的源,解构赋值表达式的右边部分 解构的目标,解构赋值表达式的左边部分 当变量名称与对象中的属性名称一致时,可简写 {attr} 使用解构方式获取对象参数中的对应属性,这样在函数内部

    2023年04月22日
    浏览(43)
  • 15 JavaScript ES6中的箭头函数

    15 JavaScript ES6中的箭头函数 什么是箭头函数 ES6中允许使用=来定义函数。箭头函数相当于匿名函数,并简化了函数定义。 基本语法 箭头函数在语法上比普通函数简洁多。箭头函数就是采用箭头=来定义函数,省去function。 函数的参数放在=前面的括号中,函数体跟在=后的

    2024年02月12日
    浏览(48)
  • 【ES】笔记-ES6的函数rest参数用法

    es6中引入了rest参数,样式形如…xxx,用于获取函数的多余参数,这样就不需要使用arguments对象了。rest参数搭配的一个变量是一个数组,该变量将多余的参数放入数组中。例如: 上面代码的add函数是一个求和函数,利用rest参数,可以向该函数传入任意数目的参数。 下面是一

    2024年02月13日
    浏览(40)
  • 【ES6】解构语句中的冒号(:)

    在解构赋值语法中,冒号(:)的作用是为提取的字段指定一个新的变量名。 让我们以示例 const { billCode: code, version } = route.query 来说明: { billCode: code, version } 表示从 route.query 对象中提取 billCode 和 version 字段。 冒号(:)后面的 code 是新的变量名,表示将 billCode 字段的值赋给

    2024年01月21日
    浏览(40)
  • 深入理解 ES6 的解构表达式

    还是大剑师兰特 :曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。 No. 内容链接 1 Openlayers 【入门教

    2024年04月13日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包