JavaScript 是一種強大的編程語言,廣泛應用於 Web 開發中,並且隨著 ECMAScript 標準的演進,其功能和語法也不斷增強。以下是一些 JavaScript 的進階概念,幫助深入理解這門語言:
function outerFunction() {
let outerVariable = 'I am outside!';
return function innerFunction() {
console.log(outerVariable);
};
}
const myFunction = outerFunction();
myFunction(); // 輸出: I am outside!
[[Prototype]]
,指向其原型物件,這使得物件能夠繼承屬性和方法。function Person(name) {
this.name = name;
}
Person.prototype.sayHello = function() {
console.log(`Hello, my name is ${this.name}`);
};
const john = new Person('John');
john.sayHello(); // 輸出: Hello, my name is John
Promise
是一種用於處理異步操作的物件,能夠更清晰地管理異步流程。它有三種狀態:pending
(待定)、fulfilled
(已滿足)和 rejected
(已拒絕)。const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Success!');
}, 1000);
});
myPromise
.then(result => console.log(result)) // 輸出: Success!
.catch(error => console.error(error));
async
和 await
是用來簡化處理 Promise
的語法,使得異步程式碼更像同步程式碼,易於閱讀和維護。async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error('Error:', error);
}
}
fetchData();
export
和 import
關鍵字來共享功能。// module.js
export const greet = (name) => `Hello, ${name}!`;
// main.js
import { greet } from './module.js';
console.log(greet('Alice')); // 輸出: Hello, Alice!
function map(arr, callback) {
const result = [];
for (let i = 0; i < arr.length; i++) {
result.push(callback(arr[i]));
}
return result;
}
const doubled = map([1, 2, 3], num => num * 2);
console.log(doubled); // 輸出: [2, 4, 6]
這些進階概念展示了 JavaScript 的強大和靈活性。深入理解這些概念將幫助你更有效地編寫代碼,並更好地掌握 JavaScript 的特性。如果有特定的概念或問題,隨時可以進一步討論!