record => !!record;
看到一个地方有这种箭头函数写法,这个作用是什么??
输入自己,返回自己?= =
1.record为输入参数,!! 则是对当前参数record进行(隐式或者显示)转换为Boolean类型,最后输出的结果为true或者false;
2.我们最常见的写法,例如:!0 等于true;0本身转换为Boolean是false,!是对当前结果取反;那么!!即为在当前取反的结果上继续取反;
a.filter(record => !!record)
等同于
var result = a.filter(function(record){
return !!record;
})
a 是不会变的,结果要看 result。
等同
function(record){
return !!record; //两次取反运算,等于将其转为对应的布尔值
}
箭头函数除了有更简短的书写函数外
还有对 this 的词法解析
function Test() {
var self = this;
setTimeout(function() {
console.log(self.a);
}, 1000);
}
// 箭头函数
function Test() {
setTimeout(() => {
console.log(this.a); //this的指向是根据外层作用域决定的
}, 1000);
}
//test
var obj = {
test:Test
}
obj.a = 0;
obj.test();
1 回答856 阅读✓ 已解决
1 回答1.1k 阅读
2 回答775 阅读
2 回答619 阅读
2 回答607 阅读
1 回答680 阅读
2 回答520 阅读
定义了一个匿名函数,参数是record 返回这个参数的布尔值对象
布尔值为false的就被剔除了
注:这里的record的实参就是数组a的每一项元素传入进去- -