定义函数
const square = function(x) {
return x * x;
};
console.log(square(12));
// → 144
var makeNoise = function() {
console.log("Pling!");
};
makeNoise();
// → Pling!
const power = function(base, exponent) {
let result = 1;
for (let count = 0; count < exponent; count++) {
result *= base;
}
return result;
};
console.log(power(2, 10));
// → 1024
- 每个函数调用,都在它自己的小世界(它的局部环境)中运行,并且通常可以在不知道全局三、函数37环境中发生的事情的情况下理解。用 let 和 const 声明的绑定,实际上是它们的声明所在的块的局部对象,所以如果你在循环中创建了一个,那么循环之前和之后的代码就不能“看见”它。JavaScript 2015 之前,只有函数创建新的作用域,因此,使用 var 关键字创建的旧式绑定,在它们出现的整个函数中内都可见,或者如果它们不在函数中,在全局作用域可见。
let x = 10;
if (true) {
let y = 20;
var z = 30;
console.log(x + y + z);
// → 60
}
// y is not visible here
console.log(x + z);
// → 40
- 每个作用域都可以“向外查看”它周围的作用域,所以示例中的块内可以看到 x 。 当多个绑定具有相同名称时例外 - 在这种情况下,代码只能看到最内层的那个。 例如,当 halve 函数中的代码引用 n 时,它看到它自己的 n ,而不是全局的 n 。
• const halve = function(n) {
return n / 2;
}
let n = 10;
console.log(halve(100));
// → 50
console.log(n)