ES6整理笔记

函数的扩展

1.rest参数

ES6 引入 rest 参数(形式为…变量名)
用于获取函数的多余参数,这样就不需要使用arguments对象了。
rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。

let arr=[1,2,3,4];
let jonson ={
	a:1,
	b:"等于二",
	c:3
}
console.log(...arr) //输出 1 2 3 4
//		    console.log(...jonson)//json对象 不能用
   
function sum(...aaa){
	console.log(aaa) //输出 [2,1,3]
}
sum(2,1,3)
2.name 属性

函数的name属性,返回该函数的函数名。

   function foo(){    	
   }
   console.log(foo.name) //输出 foo
   //变量ff等于一个匿名函数,ES5 和 ES6 的name属性返回的值不一样
   var ff = function(){
   }
   console.log(ff.name) //es6 输出ff  es5输出""
   //将一个具名函数赋值给一个变量,则 ES5 和 ES6 的name属性都返回这个具名函数原本的名字。
   var hasname = function has(){
   }
   console.log(hasname.name)//es5 es6 都输出has
3.箭头函数

ES6 允许使用“箭头”(=>)定义函数。
(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
(4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
上面四点中,第一点尤其值得注意。this对象的指向是可变的,但是在箭头函数中,它是固定的。

var f = () => 5;
//等同于
var f = function () {
	return 5
}	
var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
  return num1 + num2;
};
const numbers = (...nums) => nums;
numbers(1, 2, 3, 4, 5)
console.log(numbers(1, 2, 3, 4, 5)) //输出 [1, 2, 3, 4, 5]
//this
var id = 10;
let json ={
	id:1,
	show:function(){
//	    setTimeout(function(){
//               10  此时this指向window var定义全局 属于window 
//	             console.log(this.id)  
//		},2000) 
        setTimeout(()=>{
                //1  此时箭头函数 的this指向定义时所在的对象
        	   console.log(this.id)
        },)
	}
}
json.show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值