[ES6] 字符串、正则、数值、函数、数组、对象的扩展

一.字符串

字符串可以被for…of循环遍历。


// for(let item of "pengchb"){
// 	console.log(item)
// }

二.函数的扩展

1.函数参数的默认值

ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面


function log(x, y = 'World') {
  console.log(x, y);
}

log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello
log(undefined, 'y值') // undefined "y值"
log("", 'y值') // "y值"

2.函数的 length 属性

指定了默认值后,length属性将失真。


(function (a) {}).length // 1
(function (a = 5) {}).length // 0
(function (a, b, c = 5) {}).length // 2


3.箭头函数


let fun = (a,b) =>  a+b ;
console.log(fun(1,2))

let fun2 = (a,b) => {return a+b };
console.log(fun2(1,2))

let fun3 = (a,b) =>{ return {x:a,y:b}};
console.log(fun3(1,2))

箭头函数有几个使用注意点。

(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。

(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。

(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。

(4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。

上面四点中,第一点尤其值得注意。this对象的指向是可变的,但是在箭头函数中,它是固定的。


function foo() {
  setTimeout(() => {
    console.log('id:', this.id);
  }, 100);
}

var id = 21;

foo.call({ id: 42 });
// id: 42


function foo(){
	setTimeout(function(){
		console.log(id)
	},100)
}
var id = 10;
foo.call({ id : 1000})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值