理解 JavaScript 中的 for…of 循环

什么是 for…of 循环

for...of 语句创建一个循环来迭代可迭代的对象。在 ES6 中引入的 for...of 循环,以替代 for...inforEach() ,并支持新的迭代协议。for...of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等。 继续阅读

return闭包函数

高手绕道!这跟闭包本身没什么大的关系,也不知道怎么取标题,随便凑了个数,望见谅!

今天一个刚学js的朋友给了我一段代码问为什么方法不执行,代码如下:

[code=”javascript”]
function makefunc(x) {
return function (){
return x;
}
}
alert(makefunc(0));
[/code]
其实不是不执行,只是朋友的意思这里alert出来的应该是“0”,而不是function (){return x;}。
不是脚本写错了,只是没搞懂return,从当前函数退出,并从那个函数返回一个值。如果返回的是一个函数,那么返回的也是函数本身。
可以这样修改上面的代码,就是alert(makefunc(0)()):
[code=”javascript”]
function makefunc(x) {
return (function (){
return x;
})();
}
alert(makefunc(0)());
[/code]

如果要返回函数执行的结果那么首先要让这个函数执行,例如:
[code=”javascript”]
function makefunc(x) {
return (function (){
return x;
})();
}
alert(makefunc(0));
[/code]
这里有一个匿名函数,
[code=”javascript”]
(function (){
return x;
})();
[/code]
在第一个括号内是匿名函数,第二个括号用于调用该匿名函数,您可以在第二个括号中传入所需的参数。例如:
[code=”javascript”]
(function( x , y){
alert( x + y);
})(2 ,3 );
[/code]