JavaScriptã®ãã©ã€ããŒããã£ãŒã«ããã³ã¬ãŒã¿ãŒãã«ãã»ã«åãã©ã®ããã«é©æ°ããã³ãŒãã®ä¿å®æ§ãšã»ãã¥ãªãã£ãåäžãããããæ¢ããŸããå®è£ ãã¯ããã¯ãå©ç¹ããã¹ããã©ã¯ãã£ã¹ãåŠã³ãŸãããã
JavaScriptã®ãã©ã€ããŒããã£ãŒã«ããã³ã¬ãŒã¿ãŒçµ±åïŒã«ãã»ã«åã®åŒ·å
é²åãç¶ããJavaScriptéçºã®ç¶æ³ã«ãããŠãã³ãŒãã®ä¿å®æ§ãã»ãã¥ãªãã£ãã¢ãžã¥ãŒã«æ§ã確ä¿ããããšã¯æãéèŠã§ãããããã®ç®æšãéæããããã«å©çšã§ãã匷åãªããŒã«ã®1ã€ã¯ããªããžã§ã¯ãã®å éšç¶æ ãé ããå€éšã³ãŒããçŽæ¥ã¢ã¯ã»ã¹ãŸãã¯å€æŽã§ããªãããã«ããã«ãã»ã«åã§ãããããŸã§ãJavaScriptã¯æ £äŸãšã¯ããŒãžã£ãŒã«äŸåããŠãã©ã€ããŒããã£ãŒã«ããã·ãã¥ã¬ãŒãããŠããŸããããããããã©ã€ããŒããã£ãŒã«ããšããã«äŒŽããã³ã¬ãŒã¿ãŒãã¿ãŒã³ãå°å ¥ãããããšã§ãããå ç¢ã§ãšã¬ã¬ã³ããªãœãªã¥ãŒã·ã§ã³ãåŸãããããã«ãªããŸããã
ãã®èšäºã§ã¯ãJavaScriptã®ãã©ã€ããŒããã£ãŒã«ããã³ã¬ãŒã¿ãŒã®çµ±åã«ã€ããŠè©³ããæãäžããããããã©ã®ããã«ã«ãã»ã«åã匷åããããæ¢ããå®è£ ãšãã¹ããã©ã¯ãã£ã¹ãã¬ã€ãããå®çšçãªäŸãæäŸããŸããå©ç¹ã課é¡ãããã³æœåšçãªãŠãŒã¹ã±ãŒã¹ãæ€èšŒãããããžã§ã¯ãã§ãã®åŒ·åãªæ©èœã掻çšã§ããããã«ããŸãã
JavaScriptã«ãããã«ãã»ã«åã®çè§£
ã«ãã»ã«åã¯ããªããžã§ã¯ãæåããã°ã©ãã³ã°ïŒOOPïŒã®åºæ¬ååã§ããããã«ã¯ãããŒã¿ïŒå±æ§ïŒãšãã®ããŒã¿ãæäœããã¡ãœãããåäžã®ãŠãããïŒãªããžã§ã¯ãïŒå ã«ãã³ãã«ãããªããžã§ã¯ãã®å éšåäœãžã®ã¢ã¯ã»ã¹ãå€éšããå¶éããããšãå«ãŸããŸããããã«ããããªããžã§ã¯ãã®ç¶æ ã®æŽåæ§ãä¿è·ãããã³ãŒãããŒã¹ã®ç°ãªãéšåéã®äŸåé¢ä¿ã軜æžãããŸãã
ã«ãã»ã«åãéèŠãªçç±
- ããŒã¿ã®æŽåæ§ïŒãªããžã§ã¯ãã®å éšç¶æ ã®äžæ£ãªå€æŽãé²ããããŒã¿ã®äžè²«æ§ãšæå¹æ§ãç¶æããŸãã
- è€éãã®è»œæžïŒå®è£ ã®è©³çްãé ãããšã§ã³ãŒããç°¡çŽ åããçè§£ãšä¿å®ã容æã«ããŸãã
- ã¢ãžã¥ãŒã«æ§ïŒã·ã¹ãã ã®ä»ã®éšåã«åœ±é¿ãäžããããšãªããªããžã§ã¯ãã®å éšå®è£ ã倿Žã§ãããããççµåãšåå©çšæ§ãä¿é²ãããŸãã
- ã»ãã¥ãªãã£ïŒæ©å¯ããŒã¿ãå€éšã³ãŒãã«ãã£ãŠã¢ã¯ã»ã¹ãŸãã¯æäœãããã®ãé²ããè匱æ§ã®ãªã¹ã¯ã軜æžããŸãã
JavaScriptã«ãããã«ãã»ã«åãžã®åŸæ¥ã®ã¢ãããŒã
ãã©ã€ããŒããã£ãŒã«ãã®å°å ¥åã«ãJavaScriptéçºè ã¯ã«ãã»ã«åãã·ãã¥ã¬ãŒãããããã«ããŸããŸãªææ³ã䜿çšããŠããŸããã以äžãå«ã¿ãŸãïŒ
- åœåèŠåïŒããããã£åã®å é ã«ã¢ã³ããŒã¹ã³ã¢ïŒäŸïŒ`_myProperty`ïŒãä»ããŠããã©ã€ããŒãã§ããããšã瀺ããŸããããã¯çŽç²ãªæ £äŸã§ããããªããžã§ã¯ãã®å€éšããã®ã¢ã¯ã»ã¹ãé²ããã®ã§ã¯ãããŸããã
- ã¯ããŒãžã£ãŒïŒã¯ããŒãžã£ãŒã䜿çšããŠã颿°ã¹ã³ãŒãå ã«ãã©ã€ããŒã倿°ãäœæããŸãããã®ã¢ãããŒãã¯å®éã®ãã©ã€ãã·ãŒãæäŸããŸãããåé·ã«ãªãå¯èœæ§ããããããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
ãããã®ã¢ãããŒãã¯ããçšåºŠã®ã«ãã»ã«åãæäŸããŸããããçæ³çã§ã¯ãããŸããã§ãããåœåèŠåã¯éçºè ã®èŠåŸã«äŸåããç°¡åã«ãã€ãã¹ãããŸããäžæ¹ãã¯ããŒãžã£ãŒã¯ããã©ãŒãã³ã¹ã®ãªãŒããŒããããšè€éããããããå¯èœæ§ããããŸãã
JavaScriptãã©ã€ããŒããã£ãŒã«ãã®ç޹ä»
JavaScriptã¯ã`#`ãã¬ãã£ãã¯ã¹ã䜿çšããŠçã®ãã©ã€ããŒããã£ãŒã«ããå°å ¥ããŸããããããã®ãã£ãŒã«ãã¯ãããããå®çŸ©ããã¯ã©ã¹å ããã®ã¿ã¢ã¯ã»ã¹å¯èœã§ãããã«ãã»ã«åã®ããã®å ç¢ãªã¡ã«ããºã ãæäŸããŸãã
æ§æãšäœ¿çšæ³
ãã©ã€ããŒããã£ãŒã«ãã宣èšããã«ã¯ãã¯ã©ã¹æ¬äœå ã§ãã£ãŒã«ãåã®å é ã«`#`ãä»ããã ãã§ãã
class MyClass {
#privateField = 'secret';
constructor(initialValue) {
this.#privateField = initialValue;
}
getPrivateFieldValue() {
return this.#privateField;
}
}
const instance = new MyClass('initial');
console.log(instance.getPrivateFieldValue()); // Output: initial
// console.log(instance.#privateField); // Error: Private field '#privateField' must be declared in an enclosing class
äŸã§ç€ºãããŠããããã«ã`MyClass`ã®å€éšãã`#privateField`ã«ã¢ã¯ã»ã¹ããããšãããšã`SyntaxError`ãçºçããŸããããã«ããã峿 Œãªã«ãã»ã«åãé©çšãããŸãã
ãã©ã€ããŒããã£ãŒã«ãã®å©ç¹
- çã®ã«ãã»ã«åïŒæ £äŸãåé¿çãžã®äŸåãæé€ãããã©ã€ãã·ãŒã匷å¶ããããã®èšèªã¬ãã«ã®ã¡ã«ããºã ãæäŸããŸãã
- ã»ãã¥ãªãã£ã®åäžïŒæ©å¯ããŒã¿ãžã®äžæ£ã¢ã¯ã»ã¹ãé²ããè匱æ§ã®ãªã¹ã¯ã軜æžããŸãã
- ä¿å®æ§ã®åäžïŒãããªãã¯ã¡ã³ããŒãšãã©ã€ããŒãã¡ã³ããŒã®å¢çãæç¢ºã«å®çŸ©ããããšã§ã³ãŒããç°¡çŽ åããçè§£ãšå€æŽã容æã«ããŸãã
- çµåã®åæžïŒå®è£ ã®è©³çްãé ãããšã§ççµåãä¿é²ããã·ã¹ãã ã®ä»ã®éšåã«åœ±é¿ãäžããããšãªãã¯ã©ã¹ã®å éšåäœã倿Žã§ããããã«ããŸãã
ãã³ã¬ãŒã¿ãŒïŒã¯ã©ã¹ã®æ©èœã®æ¡åŒµ
ãã³ã¬ãŒã¿ãŒã¯ã宣èšçã§åå©çšå¯èœãªæ¹æ³ã§ã¯ã©ã¹ãã¡ãœãããããããã£ããŸãã¯ãã©ã¡ãŒã¿ãŒã®åäœã远å ãŸãã¯å€æŽã§ããJavaScriptïŒããã³TypeScriptïŒã®åŒ·åãªæ©èœã§ããã¿ãŒã²ãããè£ é£Ÿããã«ã¯ã`@`èšå·ã®åŸã«é¢æ°åã䜿çšããŸãã
ãã³ã¬ãŒã¿ãŒãšã¯äœã§ããïŒ
ãã³ã¬ãŒã¿ãŒã¯æ¬è³ªçã«ãè£ é£ŸãããèŠçŽ ïŒã¯ã©ã¹ãã¡ãœãããããããã£ãªã©ïŒãåŒæ°ãšããŠåãåããæ¬¡ã®ãããªã¢ã¯ã·ã§ã³ãå®è¡ã§ãã颿°ã§ãã
- æ°ããããããã£ãŸãã¯ã¡ãœããã®è¿œå ã
- æ¢åã®ããããã£ãŸãã¯ã¡ãœããã®å€æŽã
- è£ é£ŸãããèŠçŽ ãæ°ããèŠçŽ ã«çœ®ãæããã
ãã³ã¬ãŒã¿ãŒã®çš®é¡
JavaScriptã«ã¯ã次ã®ãããªããã€ãã®çš®é¡ã®ãã³ã¬ãŒã¿ãŒããããŸãã
- ã¯ã©ã¹ãã³ã¬ãŒã¿ãŒïŒã¯ã©ã¹ã«é©çšãããã¯ã©ã¹ã³ã³ã¹ãã©ã¯ã¿ãŒã®å€æŽãŸãã¯éçã¡ã³ããŒã®è¿œå ãå¯èœã«ããŸãã
- ã¡ãœãããã³ã¬ãŒã¿ãŒïŒã¡ãœããã«é©çšãããã¡ãœããã®åäœã®å€æŽãŸãã¯ã¡ã¿ããŒã¿ã®è¿œå ãå¯èœã«ããŸãã
- ããããã£ãã³ã¬ãŒã¿ãŒïŒããããã£ã«é©çšãããããããã£èšè¿°åã®å€æŽãŸãã¯ã²ãã¿ãŒ/ã»ãã¿ãŒé¢æ°ã®è¿œå ãå¯èœã«ããŸãã
- ãã©ã¡ãŒã¿ãŒãã³ã¬ãŒã¿ãŒïŒã¡ãœããã®ãã©ã¡ãŒã¿ãŒã«é©çšããããã©ã¡ãŒã¿ãŒã«é¢ããã¡ã¿ããŒã¿ã®è¿œå ãå¯èœã«ããŸãã
ãã©ã€ããŒããã£ãŒã«ããã³ã¬ãŒã¿ãŒã®çµ±å
ãã³ã¬ãŒã¿ãŒèªäœã¯ãã©ã€ããŒããã£ãŒã«ãã«çŽæ¥ã¢ã¯ã»ã¹ã§ããŸãããïŒãã©ã€ãã·ãŒã®ç®çãæãªãããïŒããã©ã€ããŒããã£ãŒã«ããšçµã¿åãããŠäœ¿çšââããŠãã«ãã»ã«åã匷åããå¶åŸ¡ãããæ¹æ³ã§æ©èœã远å ã§ããŸãã
ãŠãŒã¹ã±ãŒã¹ãšäŸ
ãã©ã€ããŒããã£ãŒã«ããã³ã¬ãŒã¿ãŒã®çµ±åã«é¢ããããã€ãã®å®çšçãªãŠãŒã¹ã±ãŒã¹ãèŠãŠã¿ãŸãããã
1. ãã©ã€ããŒããã£ãŒã«ããžã®ã¢ã¯ã»ã¹ããã°ã«èšé²ãã
ãã³ã¬ãŒã¿ãŒã䜿çšããŠããã©ã€ããŒããã£ãŒã«ããã¢ã¯ã»ã¹ãŸãã¯å€æŽããããã³ã«ãã°ã«èšé²ã§ããŸããããã¯ããããã°ãŸãã¯ç£æ»ã®ç®çã§åœ¹ç«ã¡ãŸãã
function logAccess(target, context) {
const privateKey = context.name;
return function(initialValue) {
return {
get() {
console.log(`Accessing private field: ${privateKey.description}`);
return initialValue;
},
set(newValue) {
console.log(`Setting private field: ${privateKey.description} to ${newValue}`);
initialValue = newValue;
},
init(initialValue) {
console.log("Initializing private field: " + privateKey.description)
return initialValue
}
};
}
}
class MyClass {
@logAccess
#privateField = 'secret';
constructor(initialValue) {
this.#privateField = initialValue;
}
getPrivateFieldValue() {
return this.#privateField;
}
setPrivateFieldValue(newValue) {
this.#privateField = newValue;
}
}
const instance = new MyClass('initial');
console.log(instance.getPrivateFieldValue()); // Output: Accessing private field: #privateField\n // initial
instance.setPrivateFieldValue('updated'); // Output: Setting private field: #privateField to updated
ãã®äŸã§ã¯ã`logAccess`ãã³ã¬ãŒã¿ãŒã¯`#privateField`ãžã®ã¢ã¯ã»ã¹ãã€ã³ã¿ãŒã»ããããã¢ã¯ã·ã§ã³ãã³ã³ãœãŒã«ã«èšé²ããŸããã³ã³ããã¹ããªããžã§ã¯ãã¯ãè£ é£ŸãããèŠçŽ ã«é¢ããæ å ±ïŒååãå«ãïŒãæäŸããããšã«æ³šæããŠãã ããã
2. ãã©ã€ããŒããã£ãŒã«ãå€ã®æ€èšŒ
ãã³ã¬ãŒã¿ãŒã䜿çšããŠããã©ã€ããŒããã£ãŒã«ãã«å²ãåœãŠãããå€ãæ€èšŒããç¹å®ã®åºæºãæºãããŠããããšã確èªã§ããŸãã
function validate(validator) {
return function (target, context) {
const privateKey = context.name;
return function(initialValue) {
return {
set(newValue) {
if (!validator(newValue)) {
throw new Error(`Invalid value for private field ${privateKey.description}`);
}
initialValue = newValue;
},
init(initialValue) {
if (!validator(initialValue)) {
throw new Error(`Invalid initial value for private field ${privateKey.description}`);
}
return initialValue;
},
get() {
return initialValue;
}
};
};
};
}
function isString(value) {
return typeof value === 'string';
}
class MyClass {
@validate(isString)
#name = '';
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
try {
const instance = new MyClass(123); // This will throw an error
} catch (e) {
console.error(e.message);
}
const instance2 = new MyClass("Valid Name");
console.log(instance2.getName());
ãã®äŸã§ã¯ã`validate`ãã³ã¬ãŒã¿ãŒã¯ããªããŒã¿ãŒé¢æ°ãåŒæ°ãšããŠåãåããŸããæ¬¡ã«ããã³ã¬ãŒã¿ãŒã¯`#name`ãã©ã€ããŒããã£ãŒã«ããžã®å²ãåœãŠãã€ã³ã¿ãŒã»ããããæ°ããå€ãæ€èšŒãã§ãã¯ã«åæ Œããªãå Žåã¯ãšã©ãŒãã¹ããŒããŸããããã«ããããã©ã€ããŒããã£ãŒã«ãã«åžžã«æå¹ãªå€ãå«ãŸããããã«ãªããŸãã
3. èªã¿åãå°çšã®ãã©ã€ããŒããã£ãŒã«ã
ãã³ã¬ãŒã¿ãŒãäœæããŠããã©ã€ããŒããã£ãŒã«ããèªã¿åãå°çšã«ããåæååŸã«å€æŽãããªãããã«ããããšãã§ããŸãã
function readOnly(target, context) {
const privateKey = context.name;
return function(initialValue) {
return {
set(newValue) {
throw new Error(`Cannot modify read-only private field: ${privateKey.description}`);
},
init(initialValue) {
return initialValue;
},
get() {
return initialValue;
}
};
};
}
class MyClass {
@readOnly
#id = Math.random();
getId() {
return this.#id;
}
//Attempting to set #id here or anywhere else would throw an error
}
const instance = new MyClass();
console.log(instance.getId());
//instance.#id = 5; //This will cause an error
`readOnly`ãã³ã¬ãŒã¿ãŒã¯ã`#id`ãã©ã€ããŒããã£ãŒã«ããèšå®ãã詊ã¿ãã€ã³ã¿ãŒã»ãããããšã©ãŒãã¹ããŒããŸããããã«ãããå€éšã³ãŒãïŒãŸãã¯ã¯ã©ã¹å ã®ã³ãŒãã§ããïŒã誀ã£ãŠãã£ãŒã«ãã倿Žããããšãé²ããŸãã
é«åºŠãªãã¯ããã¯ãšèæ ®äºé
ãã³ã¬ãŒã¿ãŒãã¡ã¯ããªãŒ
åã®äŸã®`validate`ãã³ã¬ãŒã¿ãŒã¯ããã³ã¬ãŒã¿ãŒãè¿ã颿°ã®ãã³ã¬ãŒã¿ãŒãã¡ã¯ããªãŒã®äŸã§ããããã«ããããã¡ã¯ããªãŒé¢æ°ã«åŒæ°ãæž¡ãããšã§ããã³ã¬ãŒã¿ãŒã®åäœãã«ã¹ã¿ãã€ãºã§ããŸãããã³ã¬ãŒã¿ãŒãã¡ã¯ããªãŒã¯ãåå©çšå¯èœã§æ§æå¯èœãªãã³ã¬ãŒã¿ãŒãäœæããããã®åŒ·åãªæ¹æ³ãæäŸããŸãã
ã¡ã¿ããŒã¿ãšãªãã¬ã¯ã·ã§ã³
ãã³ã¬ãŒã¿ãŒã䜿çšããŠãã¯ã©ã¹ãšãã®ã¡ã³ããŒã«ã¡ã¿ããŒã¿ã远å ããããšãã§ããŸãããã®ã¡ã¿ããŒã¿ã¯ããªãã¬ã¯ã·ã§ã³APIã䜿çšããŠå®è¡æã«ã¢ã¯ã»ã¹ã§ããŸããããã¯ãäŸåæ§æ³šå ¥ãã·ãªã¢ã«åãæ€èšŒãªã©ãããŸããŸãªç®çã§åœ¹ç«ã¡ãŸãã
TypeScriptã®çµ±å
TypeScriptã¯ãåãã§ãã¯ããªãŒãã³ã³ããªãŒããªã©ããã³ã¬ãŒã¿ãŒã®åªãããµããŒããæäŸããŸããTypeScriptã§ãã©ã€ããŒããã£ãŒã«ããæã€ãã³ã¬ãŒã¿ãŒã䜿çšãããšãåã·ã¹ãã ãå©çšããŠãã³ãŒãã®å®å šæ§ãšä¿å®æ§ãããã«åäžãããããšãã§ããŸãã
ãã¹ããã©ã¯ãã£ã¹
- ã¯ã©ã¹ã®å€éšããã¢ã¯ã»ã¹ãŸãã¯å€æŽãã¹ãã§ã¯ãªãããŒã¿ã«ã¯ããã©ã€ããŒããã£ãŒã«ãã䜿çšããŸããããã«ãããããŒã¿ã®æŽåæ§ã確ä¿ãããæå³ããªãå¯äœçšã®ãªã¹ã¯ã軜æžãããŸãã
- ãã³ã¬ãŒã¿ãŒã䜿çšããŠãå¶åŸ¡ãããåå©çšå¯èœãªæ¹æ³ã§ãã©ã€ããŒããã£ãŒã«ãã«æ©èœã远å ããŸããããã«ãããã³ãŒãã®ã¢ãžã¥ãŒã«æ§ãä¿é²ãããã³ãŒãã®éè€ã軜æžãããŸãã
- ãã³ã¬ãŒã¿ãŒãã¡ã¯ããªãŒã䜿çšããŠãæ§æå¯èœãªãã³ã¬ãŒã¿ãŒãäœæããããšãæ€èšããŠãã ãããããã«ãããç¹å®ã®ããŒãºã«åºã¥ããŠãã³ã¬ãŒã¿ãŒã®åäœãã«ã¹ã¿ãã€ãºã§ããŸãã
- TypeScriptã䜿çšããŠããã³ã¬ãŒã¿ãŒãšãã©ã€ããŒããã£ãŒã«ããæäœãããšãã«åãã§ãã¯ãšãªãŒãã³ã³ããªãŒããæŽ»çšããŸããããã¯ããšã©ãŒãé²ããã³ãŒãå質ãåäžãããã®ã«åœ¹ç«ã¡ãŸãã
- ãã³ã¬ãŒã¿ãŒã«çŠç¹ãåœãŠãåäžã®ç®çã«ä¿ã¡ãŸããããã«ãããçè§£ãä¿å®ãããã³åå©çšã容æã«ãªããŸãã
- ãã³ã¬ãŒã¿ãŒãæç¢ºã«ããã¥ã¡ã³ãåããŸããããã«ãããä»ã®éçºè ããã®ç®çãšäœ¿çšæ³ãçè§£ããã®ã«åœ¹ç«ã¡ãŸãã
- ãã³ã¬ãŒã¿ãŒã䜿çšããŠãè€éãŸãã¯ããã©ãŒãã³ã¹ãéèŠãªæäœãå®è¡ããããšã¯é¿ããŠãã ããããã³ã¬ãŒã¿ãŒã¯ãã¡ã¿ããŒã¿ã®è¿œå ã宣èšçãªæ¹æ³ã§ã®åäœã®å€æŽã«æé©ã§ãã
æœåšçãªèª²é¡
- ãã³ã¬ãŒã¿ãŒã®é床ã®äœ¿çšã¯ãçè§£ãšãããã°ãå°é£ãªã³ãŒãã«ã€ãªããå¯èœæ§ããããŸãããã³ã¬ãŒã¿ãŒãæ éã«äœ¿çšããæç¢ºãªå©ç¹ãããå Žåã«ã®ã¿äœ¿çšããŠãã ããã
- ãã³ã¬ãŒã¿ãŒã¯ã©ã³ã¿ã€ã ãªãŒããŒããããããããå¯èœæ§ããããŸããç¹ã«ããã©ãŒãã³ã¹ãéèŠãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã³ã¬ãŒã¿ãŒã®äœ¿çšã«ããããã©ãŒãã³ã¹ãžã®åœ±é¿ãèæ ®ããŠãã ããã
- å€ãJavaScriptç°å¢ãšã®äºææ§ã®åé¡ãã³ãŒãã§ãã³ã¬ãŒã¿ãŒã䜿çšããåã«ãã¿ãŒã²ããç°å¢ããã³ã¬ãŒã¿ãŒããµããŒãããŠããããšã確èªããŠãã ãããå€ãç°å¢ããµããŒãããã«ã¯ãBabelãªã©ã®ãã©ã³ã¹ãã€ã©ãŒã®äœ¿çšãæ€èšããŠãã ããã
çµè«
JavaScriptã®ãã©ã€ããŒããã£ãŒã«ããã³ã¬ãŒã¿ãŒã¯ãã«ãã»ã«åã匷åããã¯ã©ã¹ã«æ©èœã远å ããããã®åŒ·åã§ãšã¬ã¬ã³ããªæ¹æ³ãæäŸããŸãããã©ã€ããŒããã£ãŒã«ãã®å©ç¹ãšãã³ã¬ãŒã¿ãŒã®æè»æ§ãçµã¿åãããããšã§ãããä¿å®æ§ãå®å šæ§ãããã³ã¢ãžã¥ãŒã«æ§ã®é«ãã³ãŒããäœæã§ããŸããèæ ®ãã¹ãæœåšçãªèª²é¡ã¯ãããŸããããã©ã€ããŒããã£ãŒã«ããã³ã¬ãŒã¿ãŒã䜿çšããå©ç¹ã¯ãç¹ã«å€§èŠæš¡ã§è€éãªãããžã§ã¯ãã§ã¯ãæ¬ ç¹ãäžåãããšããããããŸãã
JavaScriptãšã³ã·ã¹ãã ãé²åãç¶ããã«ã€ããŠããããã®ãã¯ããã¯ãç¿åŸããããšã¯ãå ç¢ã§ã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«ãŸããŸãéèŠã«ãªããŸãããã©ã€ããŒããã£ãŒã«ããã³ã¬ãŒã¿ãŒã®åãæŽ»çšããŠãã³ãŒããæ¬¡ã®ã¬ãã«ã«åŒãäžããŠãã ããã
ãã®çµ±åã«ãããéçºè ã¯ããã¯ãªãŒã³ã§å®å šãä¿å®æ§ã®é«ãJavaScriptã³ãŒããäœæã§ããããã«ãªããWebã¢ããªã±ãŒã·ã§ã³ã®å šäœçãªå質ãšä¿¡é Œæ§ã«è²¢ç®ããŸãã