JavaScriptã®åŒ·åãªãã¿ãŒã³ãããã³ã°æ©èœãæ·±ãæãäžãã倿°æçžã®ãã¯ããã¯ãå®çšäŸããããŠããã¯ãªãŒã³ã§å¹ççãªã³ãŒããå®çŸããããã®é«åºŠãªãŠãŒã¹ã±ãŒã¹ãæ¢ããŸãã
JavaScriptã®ãã¿ãŒã³ãããã³ã°ïŒãã¿ãŒã³ã«ããã倿°æçžããã¹ã¿ãŒãã
JavaScriptã®ãã¿ãŒã³ãããã³ã°æ©èœã¯ãç¹ã«å€æ°æçžãšçµã¿åãããããšã§ãè€éãªããŒã¿æ§é ãæ¡ä»¶ããžãã¯ãæ±ãããã®åŒ·åãã€ãšã¬ã¬ã³ããªæ¹æ³ãæäŸããŸãã颿°åããã°ã©ãã³ã°ã®ååã«æ ¹ããããã®ã¢ãããŒãã¯ãã³ãŒãã®å¯èªæ§ãä¿å®æ§ãå¹çãå€§å¹ ã«åäžãããããšãã§ããŸãããã®å æ¬çãªã¬ã€ãã§ã¯ãJavaScriptã®ãã¿ãŒã³å ã§ã®å€æ°æçžã®è€éããæ¢æ±ããããããã¬ãã«ã®éçºè ã«åããŠå®çšçãªäŸãšæŽå¯ãæäŸããŸãã
ãã¿ãŒã³ãããã³ã°ãšã¯ïŒ
ãã®æ žå¿ã«ãããŠããã¿ãŒã³ãããã³ã°ãšã¯ãããå€ãç¹å®ã®ãã¿ãŒã³ãšæ¯èŒããæè¡ã§ããå€ããã¿ãŒã³ã«é©åããå Žåãå€ã®é¢é£éšåãæœåºãããããã倿°ã«å²ãåœãŠãããšãã§ããŸããããã¯åçŽãªç䟡æ§ãã§ãã¯ãè¶ ããè€éãªããŒã¿æ§é ã容æã«åè§£ããããšãå¯èœã«ããŸãã
æŽå²çã«ããã¿ãŒã³ãããã³ã°ã¯HaskellãScalaãErlangã®ãããªé¢æ°åèšèªã®å®çªã§ãããJavaScriptã«ã¯ãããã®èšèªã®ãããªå°çšã®ãmatchãããŒã¯ãŒãã¯ãããŸããããåå²ä»£å
¥ãswitchæã®ãããªæ©èœãåµé çã«äœ¿çšããããšã§ãåæ§ã®çµæãéæã§ããŸãããã€ãã£ããªãã¿ãŒã³ãããã³ã°æ§æã®ææ¡ã¯ECMAScriptã³ãã¥ããã£å
ã§é »ç¹ã«è°è«ãããŠãããå°æ¥ã®JavaScriptããŒãžã§ã³ã§ããã«è¡šçŸåè±ããªæ§æãå°å
¥ãããå¯èœæ§ããããŸãã
倿°æçžïŒãã¿ãŒã³ã®åãè§£ãæŸã€éµ
倿°æçžãšã¯ããã¿ãŒã³ã«ãããããéšåã倿°ã«å²ãåœãŠãè¡çºã§ãããããããããã¿ãŒã³ãããã³ã°ã®çã®åãçºæ®ãããéšåã§ããé åã®èŠçŽ ããªããžã§ã¯ãã®ããããã£ã«æåã§ã¢ã¯ã»ã¹ãã代ããã«ããã¿ãŒã³ãããã³ã°ã®éçšã§ç®çã®å€ãçŽæ¥æœåºã§ããŸãã
åå²ä»£å ¥ïŒãã¿ãŒã³ãã€ã³ãã£ã³ã°ã®åºç€
åå²ä»£å ¥ã¯ãJavaScriptã«ããããã¿ãŒã³ãããã³ã°ãšå€æ°æçžã®ããã®æãäžè¬çã§ãããã«å©çšã§ããã¡ã«ããºã ã§ããããã«ãããé åããå€ãåãåºãããããªããžã§ã¯ãããããããã£ãåãåºãããããŠãåå¥ã®å€æ°ã«å±éã§ããŸããé åã§ã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããïŒ
const myArray = [1, 2, 3, 4, 5];
const [first, second, ...rest] = myArray;
console.log(first); // Output: 1
console.log(second); // Output: 2
console.log(rest); // Output: [3, 4, 5]
ãã®äŸã§ã¯ãfirstã¯æåã®èŠçŽ ïŒ1ïŒã«ãsecondã¯2çªç®ã®èŠçŽ ïŒ2ïŒã«æçžãããrestã¯æ®ãã®èŠçŽ ãæ°ããé
å[3, 4, 5]ãšããŠæçžãããŸããã¹ãã¬ããæ§æïŒ...ïŒã¯ãé
åã®ãæ®ããããã£ããã£ããããã«éèŠã§ãã
åæ§ã«ãåå²ä»£å ¥ã¯ãªããžã§ã¯ãã§ãæ©èœããŸãïŒ
const myObject = { name: "Alice", age: 30, city: "London" };
const { name, age, city } = myObject;
console.log(name); // Output: Alice
console.log(age); // Output: 30
console.log(city); // Output: London
ããã§ã¯ã倿°nameãageãcityãmyObjectã®å¯Ÿå¿ããããããã£ã«æçžãããŸãã倿°åã¯ããããã£åãšäžèŽããå¿
èŠãããããšã«æ³šæããŠãã ããïŒãŸãã¯ãåŸã§èª¬æãããšã€ãªã¢ã¹ã䜿çšããããšãã§ããŸãïŒã
ãã¿ãŒã³ã«ããã倿°æçžã®å®çšäŸ
ãã¿ãŒã³ã«ããã倿°æçžãã³ãŒãã®å質ãå€§å¹ ã«åäžãããããšãã§ãããããã€ãã®å®äžçã®ã·ããªãªãæ¢ã£ãŠã¿ãŸãããã
1. APIã¬ã¹ãã³ã¹ããã®ããŒã¿æœåº
APIãæ±ãéãããŒã¿ã¯JSON圢åŒã§åãåãããšããããããŸããåå²ä»£å ¥ã䜿ããšãé¢é£æ å ±ãç°¡åã«æœåºã§ããŸãïŒ
async function fetchUserData(userId) {
const response = await fetch(`https://api.example.com/users/${userId}`);
const data = await response.json();
// Extract name and email using destructuring
const { name, email } = data;
console.log(`User: ${name}, Email: ${email}`);
}
fetchUserData(123);
APIã¬ã¹ãã³ã¹ã®æ§é ã倿Žãããå Žåã§ããåå²ä»£å ¥ã®ãã¿ãŒã³ãæŽæ°ããã ãã§æžã¿ãã³ãŒãã®ä»ã®éšåãžã®åœ±é¿ãæå°éã«æããããšãã§ããŸãã
2. 颿°åŒæ°ã®åŠç
åå²ä»£å ¥ã¯ã颿°ãã©ã¡ãŒã¿ãªã¹ãã§çŽæ¥äœ¿çšããŠãåŒæ°ãšããŠæž¡ããããªããžã§ã¯ãããå€ãæœåºããããšãã§ããŸãïŒ
function greet({ name, greeting = "Hello" }) {
console.log(`${greeting}, ${name}!`);
}
greet({ name: "Bob" }); // Output: Hello, Bob!
greet({ name: "Eve", greeting: "Good morning" }); // Output: Good morning, Eve!
ãã®ã¢ãããŒãã«ããã颿°ãã©ã®ããããã£ãæåŸ
ããŠããããæç¢ºã«ãªããåå²ä»£å
¥ãã¿ãŒã³å
ã§=æŒç®åã䜿çšããŠããã©ã«ãå€ãèšå®ã§ããŸãã`greeting`ã®ããã©ã«ãå€ã«æ³šç®ããŠãã ããã
3. ããŒã¿æ§é ã®åŠç
nameãpriceãcategoryã®ãããªããããã£ãæã€ååããããã衚çŸãããªããžã§ã¯ãã®é
åããããšããŸããmapãforEachã«ãŒãå
ã§åå²ä»£å
¥ã䜿çšããããšã§ãããŒã¿ã«ç°¡åã«ã¢ã¯ã»ã¹ããŠåŠçã§ããŸãïŒ
const products = [
{ name: "Laptop", price: 1200, category: "Electronics" },
{ name: "T-shirt", price: 25, category: "Clothing" },
{ name: "Headphones", price: 150, category: "Electronics" },
];
products.forEach(({ name, price, category }) => {
console.log(`${name} (${category}): $${price}`);
});
ãã®ã³ãŒãã¯productsé
åãå埩åŠçããåååã®ååãã«ããŽãªãäŸ¡æ Œããã°ã«åºåããŸããåå²ä»£å
¥ãã¿ãŒã³({ name, price, category })ãããããã®ããããã£ãžã®ã¢ã¯ã»ã¹ãç°¡çŽ åããŸãã
4. 倿°ã®ã¹ã¯ãã
åå²ä»£å ¥ã¯ãäžæå€æ°ã䜿çšããã«2ã€ã®å€æ°ã®å€ã亀æããç°¡æœãªæ¹æ³ãæäŸããŸãïŒ
let a = 10;
let b = 20;
[a, b] = [b, a];
console.log(a); // Output: 20
console.log(b); // Output: 10
é«åºŠãªãã¿ãŒã³ãããã³ã°æè¡
åºæ¬çãªåå²ä»£å ¥ãè¶ ããŠãJavaScriptã¯ãã¿ãŒã³ãããã³ã°èœåã匷åããããã®ããã€ãã®é«åºŠãªæè¡ãæäŸããŸãã
1. ã«ã³ãã«ããå€ã®ç¡èŠ
é åãåå²ä»£å ¥ããéãã«ã³ãã䜿ã£ãŠäžèŠãªèŠçŽ ãã¹ãããããããšãã§ããŸãïŒ
const myArray = [1, 2, 3, 4, 5];
const [first, , third, , fifth] = myArray;
console.log(first); // Output: 1
console.log(third); // Output: 3
console.log(fifth); // Output: 5
ã«ã³ãã¯ãã¬ãŒã¹ãã«ããŒãšããŠæ©èœãã察å¿ããèŠçŽ ãç¡èŠãããã¹ãã§ããããšã瀺ããŸãã
2. ã³ãã³ïŒ:ïŒã«ãããšã€ãªã¢ã¹
ãªããžã§ã¯ããåå²ä»£å
¥ããéãã³ãã³ïŒ:ïŒã䜿ã£ãŠããããã£ã®å€ãç°ãªãååã®å€æ°ã«å²ãåœãŠãããšãã§ããŸãïŒ
const myObject = { name: "Alice", age: 30 };
const { name: userName, age: userAge } = myObject;
console.log(userName); // Output: Alice
console.log(userAge); // Output: 30
ããã¯ãããããã£åãæ¢åã®å€æ°åãšç«¶åããå Žåãããã説æçãªååã䜿çšãããå Žåã«ç¹ã«äŸ¿å©ã§ãã
3. ãã¹ããããåå²ä»£å ¥
JavaScriptã§ã¯ããã¹ãããããªããžã§ã¯ããé åãåå²ä»£å ¥ããããšãã§ããŸãïŒ
const user = {
name: "Bob",
address: {
street: "123 Main St",
city: "Anytown"
}
};
const { name, address: { street, city } } = user;
console.log(name); // Output: Bob
console.log(street); // Output: 123 Main St
console.log(city); // Output: Anytown
ãã®äŸã§ã¯ãaddressããããã£ãåå²ä»£å
¥ããããã«ãã®äžã®streetãšcityããããã£ãåå²ä»£å
¥ããŠããŸãã
4. åå²ä»£å ¥ãšé¢æ°ãã©ã¡ãŒã¿ã®çµã¿åãã
åå²ä»£å ¥ã¯é¢æ°ãã©ã¡ãŒã¿ãšã·ãŒã ã¬ã¹ã«çµ±åã§ããåŒæ°ãšããŠæž¡ããããªããžã§ã¯ãããç¹å®ã®ããããã£ãæœåºã§ããŸãïŒ
function displayUserInfo({ name, age, address: { city, country = "Unknown" } }) {
console.log(`Name: ${name}, Age: ${age}, City: ${city}, Country: ${country}`);
}
const user = {
name: "Eve",
age: 25,
address: {
city: "Paris",
// country: "France" // Commented out to test default value
}
};
displayUserInfo(user); // Output: Name: Eve, Age: 25, City: Paris, Country: Unknown
ããã§ã¯ãnameãageãaddressããããã£ãåå²ä»£å
¥ããŠããŸããããã«ã¯ãaddressãªããžã§ã¯ãå
ã®cityã«å¯Ÿãããã¹ããããåå²ä»£å
¥ãšãcountryã«å¯Ÿããããã©ã«ãå€ãå«ãŸããŸããããã¯ãããã©ã«ãå€ãæ¬ æããŒã¿ãããã«ããŸãåŠçã§ãããã瀺ããŠããŸãã
`switch`æã«ãããã¿ãŒã³ãããã³ã°
åå²ä»£å
¥ã»ã©æè»ã§ã¯ãããŸããããswitchæã䜿çšããŠãåŒã®å€ã«åºã¥ããåºæ¬çãªãã¿ãŒã³ãããã³ã°ãå®è¡ã§ããŸãã
function describeValue(value) {
switch (typeof value) {
case "number":
console.log("The value is a number.");
break;
case "string":
console.log("The value is a string.");
break;
case "boolean":
console.log("The value is a boolean.");
break;
default:
console.log("The value is of an unknown type.");
}
}
describeValue(10); // Output: The value is a number.
describeValue("Hello"); // Output: The value is a string.
describeValue(true); // Output: The value is a boolean.
describeValue({}); // Output: The value is of an unknown type.
ãã®äŸã§ã¯ãswitchæã¯valueã®typeofãããŸããŸãªã±ãŒã¹ãšç
§åããŸããããã¯ãã¿ãŒã³ãããã³ã°ã®åçŽãªåœ¢åŒã§ãããç°ãªãããŒã¿åãåŠçããã®ã«åœ¹ç«ã¡ãŸãã
ãã¿ãŒã³ãããã³ã°ã«ããã`switch`ã®éç
switchæã«ã¯ãä»ã®èšèªã«èŠãããçã®ãã¿ãŒã³ãããã³ã°æ©èœãšæ¯èŒããŠããã€ãã®éçããããŸããäž»ã«å³å¯ç䟡ïŒ===ïŒã«ããæ¯èŒã«äŸåããŠããŸããè€æ°ã®å€æ°ããã¹ããããæ§é ãå«ãè€éãªãã¿ãŒã³ãswitchã§è¡šçŸããã®ã¯å°é£ã§ããããã«ãcaseæå
ã§çŽæ¥å€æ°æçžãã§ããªãããããããããå€ã®é¢é£éšåãå¹ççã«æœåºã»åŠçããèœåãå¶éãããŸãããããã£ãŠãåºæ¬çãªåãã§ãã¯ãå€ã«åºã¥ãåå²ã«ã¯åœ¹ç«ã¡ãŸãããè€éãªãã¿ãŒã³ãããã³ã°ã®ã·ããªãªã«å¯ŸããŠã¯ãåå²ä»£å
¥ãããå
ç¢ãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸãã
ããŸããŸãªå°åãæ¥çã«ããããŠãŒã¹ã±ãŒã¹
ãã¿ãŒã³ãããã³ã°ãšå€æ°æçžã®é©çšå¯èœæ§ã¯ãããŸããŸãªå°åãæ¥çã«åã³ãŸãïŒ
- Eã³ããŒã¹ïŒååããŒã¿ã®åŠçãããŸããŸãªæ¯æãæ¹æ³ã®å¯Ÿå¿ïŒäŸïŒåçš®ãã€ã¡ã³ãã²ãŒããŠã§ã€ã®ã¬ã¹ãã³ã¹ããååŒè©³çŽ°ãæœåºïŒã
- éèïŒè²¡åããŒã¿ã®åæãååŒãã°ã®è§£æããªã¹ã¯è©äŸ¡ã¢ã«ãŽãªãºã ã®å®è£ ãäŸãã°ãåœéååŒã®ããã®SWIFTã¡ãã»ãŒãžããäž»èŠãªããŒã¿ãã€ã³ããæœåºã
- ãã«ã¹ã±ã¢ïŒæ£è èšé²ã®åŠçãå»çç»åã®åæïŒäŸïŒé¢å¿é åããŒã¿ã®æœåºïŒã
- ããŒã¿ãµã€ãšã³ã¹ïŒããŒã¿ã®ã¯ãªãŒãã³ã°ãšå€æãç¹åŸŽéãšã³ãžãã¢ãªã³ã°ã倿§ãªãœãŒã¹ããã®ããŒã¿ã®è§£æãšæ€èšŒïŒäŸïŒåœããšã«ç°ãªã圢åŒã䜿çšããäœçœ®ããŒã¿ã®ã¯ãªãŒãã³ã°ïŒã
- ãŠã§ãéçºïŒãŠãŒã¶ãŒå ¥åã®åŠçããªã¯ãšã¹ãã®ã«ãŒãã£ã³ã°ãAPIã¬ã¹ãã³ã¹ã®åŠçã
- IoTïŒã¢ãã®ã€ã³ã¿ãŒãããïŒïŒã»ã³ãµãŒããŒã¿ã®è§£æãã»ã³ãµãŒèªã¿åãå€ã®ç¹å®ã®ãã¿ãŒã³ã«åºã¥ããŠã¢ã¯ã·ã§ã³ãããªã¬ãŒã
JavaScriptã®æè»æ§ãšãã¿ãŒã³ãããã³ã°ã®åã«ãããéçºè ã¯ãããã®æè¡ãå¿çšããŠãäžçäžã®ããŸããŸãªã»ã¯ã¿ãŒã«ãããåºç¯ãªåé¡ã解決ã§ããŸãã
ãã¿ãŒã³ã§å€æ°æçžã䜿çšããããã®ãã¹ããã©ã¯ãã£ã¹
ã³ãŒãã®æç¢ºããšä¿å®æ§ã確ä¿ããããã«ããã¿ãŒã³ã§å€æ°æçžã䜿çšããéã«ã¯ã以äžã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠãã ããïŒ
- 説æçãªå€æ°åã䜿çšããïŒæçžãããå€ã®ç®çãšæå³ãæç¢ºã«ç€ºã倿°åãéžæããŸãã
- ãã¿ãŒã³ãç°¡æœã«ä¿ã€ïŒçè§£ãé£ããé床ã«è€éãªãã¿ãŒã³ã¯é¿ããŸããè€éãªããžãã¯ã¯ãããå°ãã管çããããã¹ãããã«åå²ããŸãã
- æœåšçãªãšã©ãŒãåŠçããïŒãã¿ãŒã³ããããããªãå¯èœæ§ãèæ ®ãããã®ãããªã±ãŒã¹ãé©åã«åŠçããŸããäŸãã°ãããã©ã«ãå€ãæäŸããããæ¡ä»¶ä»ãããžãã¯ã䜿çšããŠæ¬ æããŒã¿ãåŠçãããããŸãã
- ãã¿ãŒã³ãææžåããïŒè€éãªãã¿ãŒã³ã®ç®çãšæ§é ã説æããããã«ã³ã¡ã³ãã远å ããŸãã
- ããã©ãŒãã³ã¹ãèæ ®ããïŒåå²ä»£å ¥ã¯äžè¬çã«å¹ççã§ãããéåžžã«å€§ããªããŒã¿æ§é ãæ±ãéã«ã¯ããã©ãŒãã³ã¹ã«æ³šæããŠãã ããã
JavaScriptã«ããããã¿ãŒã³ãããã³ã°ã®æªæ¥
ECMAScriptã³ãã¥ããã£ã¯ãJavaScriptã«ããããã€ãã£ããªãã¿ãŒã³ãããã³ã°æ§æã®ææ¡ãç©æ¥µçã«æ€èšããŠããŸãããããã®ææ¡ã¯ã颿°åèšèªã«èŠãããæ©èœãšåæ§ã«ããã¿ãŒã³ãããã³ã°ããžãã¯ããã衚çŸåè±ãã§ç°¡æœãªæ¹æ³ã§è¡šçŸããããšãç®æããŠããŸããæ£ç¢ºãªæ§æãæ©èœã¯ç°ãªããããããŸããããå šäœçãªæ¹åæ§ãšããŠã¯ãèšèªå ã«ãã匷åã§çµ±åããããã¿ãŒã³ãããã³ã°ã¡ã«ããºã ãæäŸããããšã«åãã£ãŠããŸãããã®æªæ¥ã®é²åã¯ãã³ãŒãã®å¯èªæ§ãä¿å®æ§ã衚çŸåãããã«åäžãããJavaScriptãå¹ åºãã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠããã«å€çšéãªèšèªã«ããããšãçŽæããŸãã
çµè«
JavaScriptã®ãã¿ãŒã³ãããã³ã°ãã€ã³ãã£ã³ã°æ©èœã¯ãäž»ã«åå²ä»£å ¥ãéããŠãè€éãªããŒã¿æ§é ãæ¡ä»¶ããžãã¯ãæ±ãããã®åŒ·åã§å€çšéãªããŒã«ãæäŸããŸãã倿°æçžã®æè¡ãç¿åŸããããšã§ãããã¯ãªãŒã³ã§ãèªã¿ããããä¿å®ããããã³ãŒããæžãããšãã§ããŸããJavaScriptãé²åãç¶ããã«ã€ããŠããã€ãã£ããªãã¿ãŒã³ãããã³ã°æ§æã®çµ±åã¯ãããã®èœåãããã«åŒ·åãããã¿ãŒã³ãããã³ã°ãäžçäžã®çŸä»£ã®JavaScriptéçºè ã«ãšã£ãŠäžå¯æ¬ ãªããŒã«ã«ããããšãçŽæããŸããå°åãæ¥çã«é¢ãããããããšã¬ã¬ã³ãã§å¹ççãªJavaScriptã³ãŒããæžãããã«ãã¿ãŒã³ãããã³ã°ã掻çšããŠãã ãããã¯ãªãŒã³ãªããŒã¿æœåºãšå€æã®ååã¯æ®éçã«é©çšãããŸãã