下面是一道ES6的面试题。
想要实现0-9的输出。
var funcs = [];
for(var i=0;i<10;i++){
funcs.push(function(){
console.log(i);
});
}
funcs.forEach(function(aa){
aa();
})
以上输出的结果为10个10
没有实现0-9的输出,要想输出需要用js的立即执行函数(IIFE)
代码如下:
var funcs = [];
for(var i=0;i<10;i++){
funcs.push(
(function(value){
return function(){
console.log(value);
}
})(i)
);
}
funcs.forEach(function(aa){
aa();
})
如果换成ES6的方法就会相对简单很多
var funcs = [];
for(let i=0;i<10;i++){
funcs.push(function(){
console.log(i);
})
}
funcs.forEach(function(aa){
aa();
})
当然还可以进行优化
const funcs=[];
for(let i=0;i<10;i++){
funcs.push(function(){
console.log(i);
})
}
funcs.forEach(func => func())
这些都可以输出0-9的结果。
最后
以上就是烂漫战斗机最近收集整理的关于一道ES6的面试题的全部内容,更多相关一道ES6内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复