es6基础 --- 5、函数相关:参数默认值、剩余参数、箭头函数

参数默认值

                function foo (enable) {
			// 通常设置默认参数会通过短路运算符来设置,但如果enable传入可转为false的值时,仍会使用默认值,造成bug
			let e = enable || true;
			// 应用以下代码
			let e1 = enable === 'undefined' ? true : enable;
		}

		// es6默认参数,注意:默认参数的设置必须为最后一个参数
		function bar (enable = true) {}

剩余参数

                function foo () {
			// 参数可用arguments伪数组接收到
			console.log(arguments)
		}
		function bar (...params) {
			// params数组接收从当前位置往后的所有参数
			console.log(params)
		}
		foo('lf', 19)
		bar('pf', 29)

		// 也可用在数组解构中
		let [a, ...rest] = [1, 2, 3] // a 1 rest [2, 3]

箭头函数

  1. 简化了函数的编写,特别有利于回调函数,让代码简洁清晰
  2. this指向不会改变,用apply等等都不行,this指向其定义时的外层函数的this

js中this的指向,会随着执行环境的改变而改变

  1. 在方法中,this 表示该方法所属的对象。
  2. 如果单独使用,this 表示全局对象。
  3. 在函数中,this 表示全局对象。
  4. 在函数中,在严格模式下,this 是未定义的(undefined)。
  5. 在事件中,this 表示接收事件的元素。
  6. 类似 call() 和 apply() 方法可以将 this 引用到任何对象。
  • 实例
                //箭头函数的this
		const obj = {
			name : 'lf',
			say : function () {
				// setTimeout中的函数的执行环境为windows,因此需将外层的this保存
				const self = this;
				setTimeout(function () {
					console.log(self.name)
				}, 1000)
			}
		}
		const obj1 = {
			name : 'pf',
			say : function () {
				// 此处的this即为上面obj中的self,为箭头函数定义时的this
				setTimeout(() => {
					console.log(this.name)
				}, 1000)
			}
		}
		obj.say() // lf
		obj1.say() // pf

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值