Beginning-Node.js-notes 是一份针对初学者的 Node.js 学习资料修订版,内容涵盖了从基础语法到实际项目开发的知识点和案例,帮助读者快速掌握 Node.js 的核心概念和技术。
在讨论Node.js中的立即执行函数(IIFE)时,其主要目的是创建一个新的变量作用域。例如:
```javascript
(function foo() {
console.log(foo was executed!);
})();
```
这种写法可以在不污染全局命名空间的情况下执行代码。
在JavaScript中,如果你想在一个新的范围内定义一个变量而不影响外部的同名变量,可以使用立即执行函数表达式(IIFE)。比如下面的例子:
```javascript
var foo = 123;
if (true) {
var foo = 456; // 同一作用域内的其他地方可以看到这个值
}
console.log(foo); // 输出:456
// 使用 IIFE 创建新的变量范围:
var foo = 123;
if(true){
(function() {
var foo = 456;
})();
}
console.log(foo); // 输出:123,外部的foo保持不变
```
高阶函数是指接收一个或多个函数作为参数并返回一个新的函数。例如:
```javascript
setTimeout(function(){
console.log(2 seconds have passed since start of demo);
}, 2000);
```
此代码块展示了如何使用`setTimeout`来延迟执行给定的回调函数,这是高阶函数的一个典型示例。
当一个内部作用域中的函数声明于外部作用域中时(如在一个函数体内定义另一个函数),这种嵌套形式可以用于封装和控制变量的作用范围。