定義函數
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)