JavaScriptèšèªã®ããŸãç¥ãããŠããªãæ©èœã«ã€ããŠã®æ¬¡ã®èšäºãèªãã§ããã©ãŠã¶ã³ã³ãœãŒã«ã§ããã€ãã®éåžžèãªãœãªã¥ãŒã·ã§ã³ãéãã«ããã£ããããšããç§ã¯ããé ã®äžã§èšã£ãŠããŸãã çµå±ã®ãšããããã®èšèªã¯é·ãé巚倧ãªã³ãã¥ããã£ãç²åŸããç£æ¥éçºã®é©ãã»ã©åºãç¯å²ãã«ããŒããŠããŸãã ãããããªãããªãç§ãã¡ã¯åœŒããã¹ãŠã®äººã«çè§£ãããããããã¹ãŠã®å ·äœçã§ãèšæ¶ã«æ®ããæ§é ãæåéã宣äŒããèœåããã°ãã°å¿ããã®ã§ããããïŒ ã¯ã£ãããããŠãã ããïŒ
ãããã¯ã«é¢ããæšè«
ãã®ã°ã©ãã©ããã¢ã¯ã¹ãããã§ããŸãã
ç£æ¥éçºã«ã€ããŠè©±ãå Žåãã»ãšãã©ã®å ŽåããµããŒããããã³ãŒãã®èŠä»¶ã¯ãããžãã¹ã«ãã£ãŠèšå®ãããã¿ã¹ã¯ã解決ããããšãããããã«éèŠã§ãã å€ãã®äººã«ãšã£ãŠãããã¯äžéšã®äººã«ãšã£ãŠã¯æããã§ã-äžéšïŒãã¡ããããŸããªãã«ã¿ãã£ã³ãèŠã€ãããŸãïŒã ã³ãŒããããããããã»ã©ãã³ãŒãã®ãªã¹ã¯ïŒã»ããã ããã®æ£ã«çœ®ãããç§ãã¡ãšåŸç¶è ïŒãç¥çµç³»ã«åé¡ãèµ·ãããªã¹ã¯ãå°ãªããªããŸãã
JavaScriptã®æè»æ§ãé©ãã¹ãããšã§ããããããæå€§ã®çŸåŸ³ã§ãããšåæã«åä»ãªåªãã§ããããŸãã JavaScriptéçºè ã®éã¯é·ããéåžžã«è峿·±ããã®ã§ããæžç±ããšãèšäºããšã«åžåãããŠããŒã¯ãªçµéšãç©ãããšãã§ããŸãããæã«ã¯ããã¯æ¬åœã«èšèªåºæã®ãã®ã§ãã èšèªã®æãåºãååžãšãåæã«å€ãã®èç©ãããäžããããéèªææ§ã¯ããã®èšèªãã»ãšãã©å¶ååãã人ã ãšããããäžåšçšã§æºããæš©å©ã®ã«ã¢ãšèŠãªã人ã ã®2ã€ã®åç·ã®åœ¢æã«è²¢ç®ããŸãã
ãããŠããã¹ãŠãããŸããããŸãããå€ãã®å Žåãäž¡æ¹ã®åéã®ä»£è¡šè ãåããããžã§ã¯ãã«åãçµãã§ããŸãã ãããŠãéåžžãåãå ¥ããããŠãããã¹ãŠã®æ £è¡ã¯ãäºãã®ã³ãŒãã誀解ïŒçè§£ããããšãæãŸããç¡èŠããããšããããïŒã§ãã ãããŠå®éã ãç§ã¯Javaéçºè ã«ãªããŸããããããªãã®ãã®ã§ã¯ãããŸããïŒã ã JavaScriptã®ãã©ãã¯ãŒèªèº«ãã ãJavaScriptãå®éã«èª°ãç¥ããªãïŒããšèšã£ãŠãç«ã«çæã远å ããŸãã ã¯ããjsã§1è¡ã§èšè¿°ã§ããŸãïŒã ã ç§ã¯èªåãäœæã«ç°åžžãªããã°ã©ãã³ã°ãä¹±çšããŠãããšåçœããŸã...
éçã®ä»£ããã«ãªããããªã±ãŒãã®äž¡åŽã§äººã ãšãã®ã³ãŒããæäœããçµéšãç©ããšããã®åé¡ãæãå§ããŸãã ãã¹ãŠã®éçºè ãçžäºã«çè§£ãåãã°ãããžãã¹ã©ã€ã³ã®ã¬ãã«ã ãã§ãªããå®è£ ã®ã¬ãã«ã§ãå°ãªããšãå°ãã¯ãèšç»ããã®ä»ã®äŒè°ã®çç£æ§ãé«ãŸããŸãã æªåé«ãäœé³èŠå ã¯ãããžã§ã¯ãã«ããŸã圱é¿ãäžããŸããã1人ã®ããã³ããšã³ããŒã®ç æ°ãçºçããå ŽåãããŒã ã®ä»ã®ã¡ã³ããŒã¯.jsãã¡ã€ã«ã®äžéšã®è¡ãä¿®æ£ããããšã軜disããŸããã å šå¡ããã詳现ãªç»åãæã£ãŠããå ŽåãããŒã å ããã³ãã以éã§ç¥èãå ±æããããã»ã¹ã¯ãå šå¡ã«ãšã£ãŠããéæã«ãªããŸãã ãŸãããã¹ãŠåãããã«ã
ããã«ã°ã©ã¹ãããTã·ã§ã€ããïŒä»ã®èšãæ¹ãæããŠãã ããïŒã誰ãã«å§ããããã§ã¯ãããŸããããJavaScriptã³ãã¥ããã£ããã ãã§ãããšããŠãããã®ã«ãŒãã³ãå°ãäžããŠã¿ãŸãããïŒ ãããè¡ãã«ã¯ãã³ãŒããå°ãããããããããã ãã§ååã§ããèšèªã®æè»æ§ã掻çšããŠãèŠãã³ããããªãã§çè§£ããŠãã ããã
æé·ã責任ãè² ã
JavaScriptã¯ãã€ã³ã¿ãŒãããããŒãžã®å¯Ÿè©±æ§ãšãªãœãŒã¹ã®ãæ¥çãã®ããã®èšèªãšããŠã§ã¯ãªããå®å šãªã¯ãã¹ãã©ãããã©ãŒã ã§éåžžã«ã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ãäœæããããã®åŒ·åã§ååãªããŒã«ãšããŠããã®åœ¹å²ãé·ãéèªèããŠããŸãã
ããšããšWebãã¶ã€ããŒåãã«èšèšããããã®ãæã誀解ãããããã°ã©ãã³ã°èšèªãã¯ãæ¥éã«äººæ°ãšé¢é£æ§ãé«ãŸã£ãŠããã«ãããããããé·ãéæ°Žãèžã¿ç¶ããŠããŸããã ECMAScript 5.1ã®ãšãã£ã·ã§ã³ã«å è¡ãã13ã14幎éãæšæºã®ããã€ãã®éèŠãªå€æŽãæãåºãããšããŸãã¯ãã®éçºã®ãã¯ãã«ãçè§£ããããšã¯å°é£ã§ãã åœæãã³ãã¥ããã£ã¯èšèªã®ãšã³ã·ã¹ãã ã®åœ¢æã«å€å€§ãªè²¢ç®ãããŸããïŒãããã¿ã€ããjQueryãMooToolsãªã©ã éçºè ãããã®ãã£ãŒãããã¯ãåãåã£ãåŸãJavaScriptã¯ãã°ã«å¯ŸããŠéèŠãªäœæ¥ãè¡ããŸããã2015幎ã®ES6ã®å€§èŠæš¡ãª6幎éã®ãªãªãŒã¹ãšãçŸåšEC39Scriptã®å¹Žæ¬¡ãªãªãŒã¹ã¯ãTC39å§å¡äŒã仿§ã«æ°æ©èœãå°å ¥ããããã»ã¹ãåèšèšãããããã§ãã
ããŠãã¢ããªã±ãŒã·ã§ã³ãååã«å€§ãããªã£ããšãããŠãŒã¶ãŒã¿ã€ããèšè¿°ããããã®ãããã¿ã€ãOOPã¢ãã«ã¯ãéåžžãšã¯ç°ãªãã¢ãããŒãã®ããã«æ£åœåãããªããªããŸããã ãŸãçå£ã«ãããã¯äœã§ããïŒ
function Animal() { /* Call me via new and I will be the constructor ;) */ } function Rabbit() {} Rabbit.prototype = Object.create(Animal.prototype); Rabbit.prototype.constructor = Rabbit;
ã¯ã©ã¹ã¯èšèªã«ã¯è¡šç€ºãããŸããã§ããããæ§æã¯è¡šç€ºãããŸããã ãããŠãã³ãŒãã¯äŒçµ±çãªã¯ã©ã¹æåã®ãã©ãã€ã ã®æ¯æè ã«å©çšå¯èœã«ãªããŸããïŒ
class Animal { constructor() { /* Obviously, the constructor is here! */ } } class Rabbit extends Animal {}
çŸåšããªãªãŒã¹ã®åè£ã®æ®µéã§ã¯ãã¯ã©ã¹ã®ãã©ã€ããŒããã£ãŒã«ãããããŸãã ã¢ã³ããŒã¹ã³ã¢ã§ç§æè²¡ç£ãåœåããããšã§åæããããšã§ãé ããæ©ãããäºãã®ç¬ãå£°ãæ¢ãŸããšã¯ä¿¡ããããŸããã
åæã«ã颿°ã1次ãªããžã§ã¯ãã§ãããäžå®ã®å¶ç¶æ§ãããèšèªã§ã¯ãéåžžã«äžè¬çã§ãã
let that = this; setTimeout(function() { that.n += 1; }, 1000);
ãããŠãããã§ãã®ã³ã³ããã¹ããšJavaScriptã®ééã«ã€ããŠã®èª¬æãå§ãŸããŸããããã¯ãå€éšã®éçºè 1人ãããæããããŸãã ããããå€ãã®å Žåããã®èšèªã¯Function.prototype.bindãªã©ãæç€ºçã«äœ¿çšããããšã§ãäžå¿ èŠãªé©ããåé¿ããŸãã
setTimeout(() => this.n += 1, 1000);
ãŸããç¢å°é¢æ°ãååŸããŸãããããããã¯å®éã«ã¯é¢æ°ã§ãããæ©èœçãªã€ã³ã¿ãŒãã§ã€ã¹ã§ã¯ãããŸããïŒã¯ããJavaïŒïŒã é åãæäœããããã®ã¡ãœããã®æ¡åŒµã»ãããšäžç·ã«ãéåžžã®å®£èšçãªãã€ã©ã€ã³èšç®ãèšè¿°ããã®ã«ã圹ç«ã¡ãŸãã
[-1, 2, -3, 4] .filter(x => x > 0) .map(x => Math.pow(2, x)) .reduce((s, x) => s + x, 0);
èšèªã¯ããèªäœããã«ããã©ãã€ã çã§ãããšæ£ããèããŠããŸãã ããããããã€ãã®é¢æ°ã®ã·ã°ããã£ã«é¢ããç°¡åãªäŸã次ã«ç€ºããŸãã
function ping(host, count) { count = count || 5; /* send ping to host count times */ }
æåã«ãéãããã£ã人ã¯ããããã颿°ã¯æåã®åŒæ°ããåãåããªããšãã質åãããæ¬¡ã«ãã®å Žåã®ã«ãŠã³ãã¯ããŒã«å€ã«ãªããŸãïŒïŒ å®éããã®é¢æ°ã«ã¯2ã€ã®çšéããããŸã ã ã«ãŠã³ããããšã«ãŠã³ããªãã§ãã ããããããã¯å®å šã«èªæã§ã¯ãããŸãããå®è£ ãèŠãŠçè§£ããå¿ èŠããããŸãã JSDocã䜿çšãããšåœ¹ç«ã€å ŽåããããŸãããããã¯äžè¬çãªæ¹æ³ã§ã¯ãããŸããã ãããŠãããã§ã¯JavaScriptãåé²ãããªãŒããŒããŒãã§ã¯ãªããå°ãªããšãããã©ã«ããã©ã¡ãŒã¿ã®ãµããŒãã远å ãããŸããã
function ping(host, count = 5) { /* ... */ }
èŠçŽãããšãJavaScriptã«ã¯ããžã§ãã¬ãŒã¿ãŒãã€ãã¬ãŒã¿ãŒã ã»ããã³ã¬ã¯ã·ã§ã³ãšããããã£ã¯ã·ã§ããªãŒãåä»ãé åãããã«ã¯æ£èŠè¡šçŸã§ããã åŸèªã¿ãµããŒãã§æºè¶³ã§ãããã®ããããããããŸãã ã ãã®èšèªã¯ãå€ãã®ããšã«é©ãããã¹ãŠã®äººã«èŠªãããªãããã«ãã¹ãŠãè¡ããŸãã
æçœãªãã®ãžã®å¥œãŸããé
èšèªèªäœã¯ç¢ºãã«ããã§ããŠãããããã«ã€ããŠè°è«ããã®ã¯é£ããã§ãïŒ ããããäœãæªãã®ã§ããããïŒ JavaScriptãã©ããããããç°ãªãããšãäžçäžã«åžžã«æãåºãããã®ã¯ãªãã§ããïŒ åºã䜿çšãããŠããããã€ãã®ææ³ã®äŸãèŠãŠããããã®é©åæ§ã«ã€ããŠå°ããŸãããã
ã¿ã€ããã£ã¹ã
ã¯ããJavaScriptã«ã¯åçã§åŒ±ãåã·ã¹ãã ãããããããããã®ã«å¯ŸããŠæäœãå®è¡ã§ããæé»çã«å€æãå®è¡ã§ããŸãã ããããå€ãã®å Žåãæç€ºçãªãã£ã¹ããäŸç¶ãšããŠå¿ èŠã§ãããæ¬¡ã®ããšã芳å¯ã§ããŸãã
let bool = !!(expr); let numb = +(expr); let str = ''+(expr);
ãããã®ããªãã¯ã¯ãã¹ãŠã®JavaScriptéçºè ã«ç¥ãããŠãããããã°ãããäœããäœãã«å€ããããšãã§ãããšèšã£ãŠãããšããäºå®ã«åæ©ä»ããããŠããŸããããã§ã®é床ãšã¯ãçãèšé²ãæå³ããŸãã ïŒ éçºè ãå°å·å¯èœãªæåãéåžžã«å¿é ããŠããå Žåã¯ããæ°ã«å ¥ãã®IDEã§ãå¿ èŠãªã©ã€ããã³ãã¬ãŒããŸãã¯ãªãŒãã³ã³ããªãŒããç°¡åã«æ§æã§ããŸãã ãããŠããã-å ¬éãããã³ãŒãã®ãµã€ãºã«å¯ŸããŠãç§ãã¡ã¯åžžã«é£èªåããŒã«ãä»ããŠãããå®è¡ããŸãã ãªãïŒ
let bool = Boolean(expr); let numb = Number(expr); let str = String(expr);
çµæã¯åãã§ã誰ã«ã§ãæããã§ãã
æååã®å€æã«ã¯toStringããããŸãããæ°å€ã®å€æã«ã¯è峿·±ãvalueOfããã ãããããªãŒããŒã©ã€ãã§ããŸãã ãæªçµéšè ããstè¿·è ã«å°å ¥ããå€å žçãªäŸïŒ
let timestamp = +new Date;
ãã ãã Dateã«ã¯æ¢ç¥ã®getTimeã¡ãœããããããŸããããã䜿çšããŠã¿ãŸãããã
let timestamp = (new Date()).getTime();
ãŸãã¯æ¢è£œã®æ©èœïŒ
let timestamp = Date.now();
æé»ã®åå€æãæŽ»çšããå¿ èŠã¯ãŸã£ãããããŸããã
è«çæŒç®å
è«çæŒç®åANDïŒ&&ïŒãšORïŒ||ïŒã«ã¯ç¹å¥ãªæ³šæãæãããŸãããããã¯JavaScriptã§ã¯å®å šã«è«ççã§ã¯ãããŸãããããããçš®é¡ã®å€ãåãå ¥ããŠè¿ããŸãã è«çåŒèšç®æ©ã®æäœã®è©³çްã«ã€ããŠã¯èª¬æããŸããããäŸãæ€èšããŸãã 颿°ã§ä»¥åã«æç€ºããããªãã·ã§ã³ïŒ
function ping(host, count) { count = count || 5; /* ... */ }
次ã®ããã«ãªããŸãã
function ping(host, count) { // OR arguments.length? if (typeof count == 'undefined') { count = 5; } /* ... */ }
ãã®ãããªæ€èšŒã¯ãã身è¿ãªãã®ã§ãããå Žåã«ãã£ãŠã¯ééããé¿ããã®ã«åœ¹ç«ã¡ãŸãã
ããããæåã«JavaScriptãã¹ãéžæããéçºè ã«ãšã£ãŠã¯éavãªããã§ãã ããããä»ã®ã»ãšãã©ã®äººã«ãšã£ãŠããã®ã³ãŒãã¯æ¬åœã«ã¯ã€ã«ãã§ãïŒ
var root = (typeof self == 'object' && self.self === self && self) || (typeof global == 'object' && global.global === global && global);
ã¯ããããã¯ã³ã³ãã¯ãã§ãããããŠãã¯ãã人æ°ã®ãã峿žé€šã¯ãããè²·ãäœè£ããããŸãã ãã ããJavaScriptã®å¯çš¿è ã§ã¯ãªããå²ãåœãŠãããæéå ã«ããžãã¹äžã®åé¡ã解決ããéçºè ã«ãã£ãŠã³ãŒããèªã¿åããããããæªçšããªãã§ãã ããã
ãã®ãããªãã¿ãŒã³ã¯ããŸã£ããçºçããå¯èœæ§ããããŸãã
let count = typeof opts == 'object' && opts.count || 5;
ããã¯éåžžã®äžé æŒç®åãããæããã«çãã§ããããã®ã³ãŒããèªããšããæåã«èŠããŠããã¹ãããšã¯ã䜿çšããæäœã®åªå é äœã§ãã
åãArray.prototype.filterã«æž¡ãè¿°èªé¢æ°ãäœæããå Žåãæ»ãå€ãããŒã«å€ã§ã©ããããã®ãè¯ãæ¹æ³ã§ãã ãã®é¢æ°ã®ç®çã¯ããã«æããã«ãªããèšèªã«ãæ£ãããè«çæŒç®åãããéçºè ã®éã§äžååé³ã¯ãããŸããã
ãããæŒç®
ããã€ãã®ãã¥ãŒããªã¢ã«ã§ãæäŸãããŠããããããåäœã®NOTïŒNOTïŒã䜿çšããŠãé åå ã®èŠçŽ ãŸãã¯æååå ã®éšåæååã®ååšã確èªããäžè¬çãªäŸïŒ
if (~[1, 2, 3].indexOf(1)) { console.log('yes'); }
ããã¯ã©ã®ãããªåé¡ã解決ããŸããïŒ indexOfã¯èŠçŽ ã®ã€ã³ããã¯ã¹ãŸãã¯-1ãååŸãããã«ãã¯1ã远å ããŠç¬Šå·ã倿Žããããã ïŒ== -1ããã§ãã¯ããå¿ èŠã¯ãããŸããã ãããã£ãŠãã€ã³ããã¯ã¹ã-1ã®å ŽåãåŒã¯ãåœãã«ãªããŸãã
ãã ããã³ãŒãã®éè€ã¯å¥ã®æ¹æ³ã§åé¿ã§ããŸããä»ã®ç®çã§ãããæŒç®ã䜿çšãããããããã¹ãŠã®ãŠãŒã¶ãŒãè¡ãããã«ãäžéšã®utilsãªããžã§ã¯ãã®å¥ã®é¢æ°ã«ãã§ãã¯ãå
¥ããŸãã ãã®ããã«lodashã«include颿°ããããããã¯æ©èœããŸãã ã¢ãã«ã»ãã¯ã¹ ãã«ãã ECMAScript 2016ã§ã¯Array.prototype.includesã¡ãœãããä¿®æ£ããããããåã¶ããšãã§ããŸãïŒè¡ã«ã1ã€ãããŸãïŒã
ããããããã«ãããŸããïŒ å¥ã®ãã«ãïŒXORãšãšãã«ïŒã䜿çšããŠæ°å€ãäžžããå°æ°éšåãç Žæ£ããŸãã
console.log(~~3.14); // 3 console.log(2.72^0); // 2
ãã ãããããã®ç®çã«ã¯parseIntãŸãã¯Math.floorããããŸãã ããã§ã®ãããæŒç®ã¯ãä»ã®ç®è¡ãããåªå 床ãäœããããã³ã³ãœãŒã«ã§ã³ãŒãããã°ããå ¥åããã®ã«äŸ¿å©ã§ãã ããããã³ãŒãã¬ãã¥ãŒã§ã¯ãèŠéããªãæ¹ãè¯ãã§ãããã
æ§æããã³èšèªæ§æ
äžéšã®å¥åŠãªæ £è¡ã¯ãç¹å®ã®ã»ã¯ã·ã§ã³ã«èµ·å ããããšã¯å°é£ã§ãã ããšãã°ãã³ã³ã¹ãã©ã¯ã¿ãŒãåŒã³åºããšããæ¬åŒ§ã¯ãªãã·ã§ã³ã§ãããæ¬¡ã®2ã€ã®åŒã¯åäžã§ãããšèšããŸãã
let rabbit = new Rabbit(); let rabbit = new Rabbit;
ãããŠããã¯æ¬åœã«ïŒ ãããããªãæåãã質åãäœæããã®ã§ããïŒ ãã¹ãŠã®èšèªããã®ãããªãæ©èœããèªãããã§ã¯ãããŸããã ãããŠãããããã§ãããã®ã§ããã°ãããããããžã§ã¯ãå šäœã®åæã«ããŸãããã ããã§ãªããã°ãéãããããšãã誀ã£ãæèŠããããŸãã
倿°ã®ã»ããã宣èšããåæ§ã®ç¶æ³ã varããã³letãã£ã¬ã¯ãã£ãã®æ§æã䜿çšãããšãè€æ°ã®å€æ°ãã³ã³ãã§åºåã£ãŠäžåºŠã«å®£èšïŒããã³å®çŸ©ïŒã§ããŸãã
let count = 5, host, retry = true;
誰ããèªã¿ãããããããã«æ¹è¡ã䜿çšããŠããŸããããããã«ããŠãããã®æ§æã¯äžè¬çãªèšèªã§ã¯äžè¬çã§ã¯ãããŸããã 誰ãæãæããŠãããªãããã®ããã«æžããã©ããå°ããŸããïŒ
let count = 5; let retry = true; let host;
ç¹°ãè¿ããŸããããããžã§ã¯ã/äŒæ¥ã¬ãã«ã§è¯ãã¹ã¿ã€ã«ã«é¢ããåæãããå Žåã質åã¯ãããŸããã æ°åã«åãããŠæ§æã®ããªãšãŒã·ã§ã³ãçµã¿åãããå¿ èŠã¯ãããŸããã
IIFEãªã©ãèšèªã«ã¯å®å šã«ç¹å®ã®æ§é ããããå®çŸ©ã®å Žæã§ããã«é¢æ°ãåŒã³åºãããšãã§ããŸãã å šäœã®ç§trickã¯ãããŒãµãŒã颿°å®£èšã§ã¯ãªã颿°åŒãèªèããããšã§ãã ãããŠãããã¯ããŸããŸãªæ¹æ³ã§è¡ãããšãã§ããŸãïŒå€å žçã«æ¬åŒ§ã§å²ãã voidãŸãã¯ãã®ä»ã®åé æŒç®åã䜿çšããã ãããŠãããã«ã€ããŠçŽ æŽãããããšã¯äœããããŸããïŒ å¯äžã®ãªãã·ã§ã³ãéžæããå¿ èŠãããããããå¿ èŠãªãæ®ããªãã§ãã ããïŒ
(function() { /* ... */ }());
ããŒãµãŒãããã¯ããããã«ãªãã¬ãŒã¿ãŒã䜿çšããå¿ èŠã¯ãããŸããã æ°èŠåå ¥è ããããžã§ã¯ãã«æ¥ããšããã¢ããªã±ãŒã·ã§ã³ã®ããžãã¹ããžãã¯ã«æµžãããããã®æå笊ã空çœããã¹ãŠã¹ãã€ãããå Žæããã®èª¬æãæäŸããããªãã ãŸãã2çªç®ã®å€å žçãªãã©ã±ãããšã³ããªãšããã®ããŒãã«é¢ããCrockfordããã®è峿·±ãã³ã¡ã³ãããããŸãã
ES6ã®ã¯ã©ã¹æ§æã®åºçŸã«ã¯ãéåžžã®ã¢ã¯ã»ã¹ä¿®é£Ÿåãä»éããŠããŸããã§ããã ãŸããéçºè ã¯ã¯ã©ã¹ããã£ããèŠããããã©ã€ãã·ãŒã芳å¯ãããå ŽåããããŸãã ããã¯ãã®ãã©ã³ã±ã³ã·ã¥ã¿ã€ã³ã®ã³ãŒãã«ã€ãªãããŸãïŒ
class Person { constructor(name) { let _name = name; this.getName = function() { return _name; } } toString() { return `Hello, ${this.getName()}`; } }
ã€ãŸããã³ã³ã¹ãã©ã¯ã¿ãŒã§ã€ã³ã¹ã¿ã³ã¹ã®ã¢ã¯ã»ãµãŒãäœæãããã¯ããŒãžã£ãŒãä»ããŠããŒã«ã«ããããã£å€æ°ã«ã¢ã¯ã»ã¹ããããšã§ãã©ã€ãã·ãŒãå®çŸãããŸãã ãã®äŸã¯Lacconcinoã«ããªã䌌ãŠããŸãããããã¥ã¡ã³ãåããããã¬ãŒã ã¯ãŒã¯ãœãªã¥ãŒã·ã§ã³ãæ§ç¯ããªãéããããã¯å®å šã«ã¹ã±ãŒã©ãã«ãªã¢ãããŒãã§ã¯ãããŸããã 玳士ãå©çšå¯èœãªã¯ã©ã¹ïŒããã³ãã©ã€ããŒããã£ãŒã«ãã®æšæºåãåŸ ã€ïŒããŸãã¯äººæ°ã®ãããã¿ãŒã³ã¢ãžã¥ãŒã«ã䜿çšããŠã¿ãŸãããã ããã§äœããã®äžéããã¯ã¹ãœãªã¥ãŒã·ã§ã³ãäœæããããšã¯ãã¯ã©ã¹ãã¯ã©ã¹ã§ãªããªããã³ãŒãããããããããããèªåã«ãšã£ãŠã¯éåžžã«éèŠã§ãã
èŠçŽãããšã圌ã¯ãããžã§ã¯ãã§æ¡çšãããŠããã¹ã¿ã€ã«ã¬ã€ãããªã³ã¿ãŒã®èšå®ããŸãã¯ãããžã§ã¯ãã«JavaScript以å€ã®ã³ã³ããŒãã³ããæäŸããŠããååãšåã«ã³ãŒãã®æçãšãåžžèãå ±æããŸãã ãã®èšèªã«ã¯ãæåéããã¹ãŠã®å žåçãªã¿ã¹ã¯ã«å¯ŸããŠããã€ãã®ãªãã·ã§ã³ãçšæãããŠãããããäºãã®çè§£ãæ·±ããå ±éã®åæ¯ã«åé¡ããããšã¯é£ãããããŸããïŒãŸãã¯ã»ãšãã©ïŒã
ãã¹ã¢ããã³ãã£ãŒ
ãã®ãããã¯ã¯ç¢ºãã«å šäœè«çã§ãããããã«å€ãã®äŸããããŸãããèšäºã®äž»ãªã¡ãã»ãŒãžã¯ããããåé¿ã§ããJavaScriptã®éèªææ§ãæªçšãã¹ãã§ã¯ãªããšããããšã§ãã ãã®èšèªã®æ§è³ªã¯ç¬ç¹ã§ãããšã¬ã¬ã³ãã§è¡šçŸåè±ããªïŒãé åºãªãçšåºŠãŸã§ïŒãœãªã¥ãŒã·ã§ã³ãäœæã§ããã»ãã誰ããçè§£ããããã¢ã¯ã»ã¹ã§ããããã«ãªã£ãŠããŸãã JavaScriptã¯ãèªåèªèº«ã眰ããããŸãã¯ãåæãšå€±æã®å±±ã«åãããŠããããšããåŸæ¥ã®ç¥æµã«æ ¹æ¬çã«å察ããŸãã ãªããªããä»ã§ã¯å¥åŠãã®ã»ãšãã©ã¯èšèªã§ã¯ãªããéçºè ã®æåãšãã®åšãã«åœ¢æãããïŒç¡é¢å¿ã§ã¯ãªãïŒã«ãã£ãŠå®èšŒãããŠããããã§ãã