ES6-函数中参数的解构赋值

本文介绍了ES6中函数参数的解构赋值,包括如何将对象属性作为实参传入函数并由形参接收,以及如何通过解构处理无实参情况,如设置默认值以避免报错。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、将obj的属性name和age作为实参传进函数fun,给函数的形参name、age接收

	
	var obj = {
	    name: "zs",
	    age: 11,
	    email: "nodejs@163.com"
	}
	
	function func(name, age) {
	    console.log(name, age);
	}
	func(obj.name, obj.age);
	

二、使用解构的方法

(1)【传了实参】传了一个对象,参数直接使用对象解构的形式


	var obj = {
	    name: "zs",
	    age: 11,
	    email: "nodejs@163.com"
	}
	//实参是obj--对应形参是{ name, age, email } 
	//这里实际上就是{name:name,age:age,email:email}的间写
	function func({ name, age, email }) {
	    console.log(name, age, email); //zs 11 nodejs@163.com
	}
	func(obj);

(2)【没有传实参】如果形参是使用的解构的形式,但是却没有传实参会报错,如下。可以通过给形参设置一个默认值的方法解决,看(3)。


	var obj = {
	    name: "zs",
	    age: 11,
	    email: "nodejs@163.com"
	}
	function func({ name, age, email }) {
	    console.log(name, age, email);//不传参会报错:Cannot destructure property `name` of 'undefined' or 'null'
	}
	func();
	

(3)【没有传实参报错】给形参设置一个默认值


	var obj = {
	    name: "zs",
	    age: 11,
	    email: "nodejs@163.com"
	}
	//在这里没有传参的话,默认是把一个空对象结构,得出的是undefined
	function func({ name, age, email } = {}) {
	    console.log(name, age, email); //undefined undefined undefined
	}
	
	func();
	

(4)如果是解构的形式,给形参默认值,是以 等号= 给默认值

	
	//没有传参,默认是空对象,本来应该都是undefined,但是name设置默认值是nodejs
	function func({ name = "nodejs", age, email } = {}) {
	    console.log(name, age, email); //nodejs undefined undefined
	    }
	func();
	

	function func({ name = "nodejs", age, email } = {}) {
	 	console.log(name, age, email); //js undefined 123@qq.com
	}
	// 传参传的对象,是:
	func({ name: "js", email: "123@qq.com" });
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值