JavaScriptã®ã°ããŒãã«å€æ°ã解説ïŒããŒã«ã«å€æ°ãšéããšã¯
ã°ããŒãã«å€æ°ã«ã€ããŠç¥ã£ãŠããããšã¯JavaScriptãäžéããŠããäžã§å¿ é ã®ç¥èã§ããç¹ã«ããŒã«ã«å€æ°ãšã®éãçã«ã€ããŠã¯çè§£ããŠããå¿ èŠãããã颿°ã®å€ã§å®çŸ©ããããã®ãã°ããŒãã«å€æ°ã§ãã颿°ã®äžã§å®çŸ©ããããã®ãããŒã«ã«å€æ°ã§ããããšã¯æäœéæŒãããŠãããªããŠã¯ãªããŸãããJavaScriptã§ããã°ã©ãã³ã°ãããŠãããšå€æ°ãå®çŸ©ããå Žé¢ãå€ãåºãŠããŸããäœãé£ããããšã¯ãããŸããããããŒã«ã«å€æ°ãšã®å Œãåãã§ãã°ãèµ·ããããšãããããæ£ããç¥èãæã£ãŠäœ¿ããªããã°ãªããŸãããããã§ãã°ããŒãã«å€æ°ãšã¯äœè ãªã®ãããããŠã¹ã³ãŒãã®æŠå¿µã«ã€ããŠãç¥ã£ãŠããå¿ èŠãããã§ããããã°ããŒãã«å€æ°ã§ã€ãŸããããšã®ãªããããããã§åºæ¬äºé ããã¡ããšçè§£ããŠããããã«ããŸãããã
JavaScriptã«ãããã°ããŒãã«å€æ°ãšã¯
ãã°ããŒãã«å€æ°ãã¯ããã°ã©ã ã®ã©ãããã§ãã¢ã¯ã»ã¹ãã§ãã倿°ã®ããšã§ããããã«å¯ŸããŠé¢æ°ã®å
åŽã§å®£èšãã倿°ã¯ãããŒã«ã«å€æ°ããšåŒã°ããã©ãã§ã§ã䜿çšã§ãã倿°ã§ã¯ãããŸããã
ä»ã®å€ãã®ããã°ã©ãã³ã°èšèªã§ãåãã§ãããJavaScriptã«ãããŠãã©ãã§ã©ã®å€æ°ã䜿ããã®ããšããããšã¯æèããŠããªããã°ãªããŸãããããŒã«ã«å€æ°ãå®çŸ©ããå Žé¢ãå€ããããŸããããããããæå¹ã«æ©èœããå Žæãšãããã®ããããŸãã®ã§ããã®ããšãåæã«ããã°ã©ã ã¯çµãŸãªããã°ãªããŸããã
ãããŠã°ããŒãã«å€æ°ãšããŒã«ã«å€æ°ãšã®é¢ä¿ããååã被ã£ãŠããŸã£ããšãã®æåãåªå
床ãªã©ã«ã€ããŠã¯ããçè§£ããŠããå¿
èŠãããã§ãããã
ã¹ã³ãŒããšã¯
ã°ããŒãã«å€æ°ãããŒã«ã«å€æ°ã®éããããããã®ç¹åŸŽãçè§£ããäžã§ã¯ãã¹ã³ãŒãããšåŒã°ããæŠå¿µãç¥ã£ãŠããããšãå¿
èŠã§ãã
ã¹ã³ãŒããšã¯ã倿°ãããã°ã©ã ã®äžã®ã©ã®å Žæããåç
§ã§ããã®ãããšããããšã決å®ã¥ãããã®ã§ãã倿°ã䜿çšå¯èœãªç¯å²ãšèšãæããããšãã§ããŸãããããŠã°ããŒãã«å€æ°ã§ã¯ããã°ã©ã ã®ã©ãããã§ãåç
§ãã§ããããå
šç¯å²ãã°ããŒãã«å€æ°ã«ãšã£ãŠã®ã¹ã³ãŒããšãªããããããã°ããŒãã«ã¹ã³ãŒãããšåŒã³ãŸããäžæ¹ã§ããŒã«ã«å€æ°ã§ã¯æå¹ãªç¯å²ãéãããããããããŒã«ã«ã¹ã³ãŒãããšåŒã³ãŸãã
ã°ããŒãã«å€æ°ã®å®çŸ©æ¹æ³
ã°ããŒãã«å€æ°ãšããŠå®çŸ©ããã«ã¯é¢æ°ã®å€ã§å€æ°ã®å®£èšãããŸãã
var ghensu = 'Global';
console.log(ghensu);
//Global
ä»»æã®å€æ°åã®åã«ã¯varãèšè¿°ããããã«å€ã代å
¥ããŠãããŸããããã§ã¯ãGlobalããšããæåã代å
¥ããŸãã
ãããŠç¢ºèªã®ããã«ãããåºåããŠã¿ããšããã®æåã衚瀺ãããããšã確èªã§ããŸãã
ããŒã«ã«å€æ°ã®å®çŸ©æ¹æ³
ããŒã«ã«å€æ°ã¯é¢æ°å ã§å®£èšãã倿°ã®ããšã§ãã®ã§ããŸãã¯é¢æ°ãå®çŸ©ãããã®äžã§å€æ°ãå®çŸ©ããããšã«ãªããŸãã
function local(){
var lhensu = 'Local';
return lhensu;
}
console.log(local());
//Loccal
ãã®ããã°ã©ã ã§ã¯é¢æ°local()ã®äžã§ãlhensuããšãã倿°ãå®çŸ©ãããLoocalããšããæåãä»£å ¥ãreturnã§ãã®å€ãè¿ããŠããŸãããããŠå®çŸ©ãã颿°ãåŒã³åºãããšã§ããŒã«ã«å€æ°ã®å€ãåºåãããŠããŸãã
varã®äœ¿ãæ¹ã«æ³šæ
ãããŸã§åœããåã®ããã«å€æ°å®£èšã§ãvarãã䜿ã£ãŠããŸããããããã¯å¿ ãããå¿ èŠãªãã®ã§ã¯ãããŸãããå®éãã°ããŒãã«å€æ°ãšããŒã«ã«å€æ°ã®å®çŸ©ã§ç޹ä»ããããã°ã©ã äŸã®ã©ã¡ãããvarããªãã§åãåºåçµæãåŸãããŸãããã ããã®å Žåãäžå ·åãåºãŠããããšãããã®ã§æ³šæããŸãããã
ãšããã®ãJavaScriptã§ãvarãã䜿ããã«å®£èšãã倿°ã¯ãã¹ãŠã°ããŒãã«å€æ°ãšã¿ãªãããããšããç¹åŸŽãããããã°ããŒãã«å€æ°ãšããŒã«ã«å€æ°ã§åã倿°åã䜿çšããŠãããšäºæãã¬å Žæã§å€æ°ãäžæžããããŠããŸãããšãããã®ã§ãããã®ããããŒã«ã«å€æ°ã¯ãã¡ãããã°ããŒãã«å€æ°ã®å®çŸ©ã§ããã¹ãŠãvarãã䜿ãããšãæšå¥šãããŸãã
ES6ã§ã¯letã§å€æ°å®çŸ©
ES6ã§ã¯ãletãã远å ãããŠãããES6ãå©çšã§ããç°å¢ã§ã¯ãvarãã®ä»£ããã«ãletãã䜿ã£ãŠå€æ°ãå®çŸ©ãããšè¯ããšãããŠããŸãããŸããããæ±ºãŸã£ãå€ã䜿ãã®ã§ããã°å®æ°ãšããŠå®çŸ©ããæ¹æ³ããããŸãã
constã宿°åã=ãå€
ãã®ããã«ã倿°ã®ãšããšäŒŒã圢ã§å®çŸ©ããããšãã§ããŸãã
ãletãã«é¢ããŠãã»ãšãã©ãvarããšåãããã«äœ¿çšã§ããŸãããã¹ã³ãŒãã®ç¯å²ã«ã¯æ³šæãå¿
èŠã§ãããvarãã ãšé¢æ°ã¹ã³ãŒããšãªãã颿°å
ã§ãããã¯ã§å€æ°å®çŸ©ãããŠãååã ãšäžæžããããŠããŸããŸãã
äžæ¹ãletãã§ã¯ãããã¯ã¹ã³ãŒãã§ãã®ã§åã颿°å ã§ååã®å€æ°ãå®çŸ©ããŠããããã¯ããç°ãªã£ãŠããã°éããã®ãšããŠåŒã³åºãããšãã§ããŸãããvarãã§ã¯ãããã¯ã¹ã³ãŒããŸã§ã¯å¯Ÿå¿ããŠããŸãããããletãã§ã¯ãããã¯ã¹ã³ãŒãã«å¯Ÿå¿ãããããäžã®äŸã®ããã«ãletãã§å®çŸ©ãããã®ããããã¯å€ã§åºåããããšãããšãšã©ãŒãèµ·ãããŸãã
if (true) {
var value1 = 10;
console.log(value1);
}
console.log(value1);
if (true) {
let value2 = 20;
console.log(value2);
}
console.log(value2);ã//ãâããšã©ãŒ
ã°ããŒãã«å€æ°ã®åªå é äœ
ãvarãã§å®£èšããããšãªã倿°å®çŸ©ãããå Žåã«ã¯ãã¹ãŠã°ããŒãã«å€æ°ãšã¿ãªãããŠããŸããŸãããvarã䜿ã£ãå Žåã§ãã©ã¡ãã®å€æ°ãã©ã®å Žæã§åªå ãããã®ãã¯çè§£ããªããã°çµå±æ··ä¹±ããŠããŸããŸããããã§å€æ°ã®åªå é¢ä¿ã«ã€ããŠããã€ã説æããŠãããŸãã
颿°å ã§ã¯ããŒã«ã«å€æ°ãåªå ããã
ã°ããŒãã«å€æ°ãšããŒã«ã«å€æ°ã§åã倿°åã䜿çšãããŠããå Žåã®ããã°ã©ã ãèŠãŠã¿ãŸãããã
var hensu = 'Global';
console.log(hensu);
function local(){
var hensu = 'Local';
console.log(hensu);
}
local();
console.log(hensu);
//Global
//Local
//Global
æåã«ã°ããŒãã«å€æ°ãhensuããå®çŸ©ãããŠããŸããçŽåŸã«å€æ°ã®å€ãåºåããåœç¶ä»£å
¥ãããGlobalãã衚瀺ãããŸãããã®äžã§ã¯é¢æ°local()ãå®çŸ©ãããããŒã«ã«å€æ°ãšããŠåãããhensuããå®çŸ©ããããŠé¢æ°ãåŒã³åºããŠãã®å€æ°ã®å€ãåºåãããŠããŸãããããšãåã console.log(hensu) ãšããåŠçããããŠããã«ãé¢ãããçµæã¯ãLocalãã衚瀺ãããŠããŸããããã颿°ã®å€ã§åã³åãããšãããããšã°ããŒãã«å€æ°ãåºåãããŠããŸãã
ã€ãŸãã颿°å ã§å®çŸ©ãããããŒã«ã«å€æ°ã¯ãã®é¢æ°å éšã§ããæå¹ã«æ©èœããŸããããæç¯å²å ã§ã¯ã°ããŒãã«å€æ°ã«åªå ãããšããããšãåãããŸãããããŠããã¯äžæžããããŠããããã§ã¯ãªããããããã®å€æ°ã¯å¥ç©ãšããŠæ±ãã颿°ã®å€ã«åºãã°åã³ã°ããŒãã«å€æ°ã䜿ãããšãã§ããŸãã
倿°ã®å·»ãäžãã«æ³šæ
ã°ããŒãã«å€æ°ã䜿ãã«ã¯æäœéãåé ã§èª¬æããããŒã«ã«å€æ°ãšã®åªå 床ãçè§£ã§ããã°ã»ãšãã©åé¡ã¯ãããŸãããããããäžã®ããã°ã©ã ãèŠãã°åããããã«ãã»ãŒåãåŠçããããŠããã«ãé¢ãããçµæãå€ãã£ãŠããŸãããšãããã®ã§å€æ°ã®å®çŸ©ã¯ãåãã®ãã¡ã¯æ éã«è¡ãå¿ èŠãããã§ãããã
var hensu = 'Global';
console.log(hensu);
function local(){
console.log(hensu);
var hensu = 'Local';
}
local();
console.log(hensu);
//Global
//undefined
//Global
åã®ããã°ã©ã ãšéãç¹ã¯é¢æ°å
ã§å€æ°å®çŸ©ãããåã«åºåãããŠãããšããããšã§ãã
ãã®å Žåãã°ããŒãã«å€æ°ãé©çšãããŠãè¯ãããã«ãæããŸããçµæã¯ãundefinedããšãªãæªå®çŸ©ã®å€æ°ãšã¿ãªãããŠããŸããŸããããŒã«ã«ã¹ã³ãŒãã®ç¯å²ã§ã¯ãããŸããããŸã 倿°å®çŸ©ããããŠããªãç¶æ
ã§åºåããããšãããšãã®ãããªæåãèµ·ãããŠããŸããŸãããããã倿°ã®å·»ãäžãããšåŒã³ãŸãããã®ãããJavaScriptã§ã¯é¢æ°ã®å
é ã§ããŒã«ã«å€æ°ãå®çŸ©ããã®ãæãŸãããšãããŠããŸãã
ãŸãšã
JavaScriptã«ãããã°ããŒãã«å€æ°ã®æå³ããã®å®çŸ©æ¹æ³ããããŠããŒã«ã«å€æ°ãšã®é¢ä¿ã«ã€ããŠèª¬æããŠããŸãããèŠããŠããããã®ã¯ã°ããŒãã«å€æ°ãå®çŸ©ããŠãããšããŠãããŒã«ã«å€æ°ãå®çŸ©ãããã®é¢æ°å
ã§ã¯ããŒã«ã«å€æ°ãåªå
ããããšããããšããããŠã©ã®å€æ°ã§ãã£ããšããŠãå®çŸ©æã«ã¯ãvarãã䜿ããšããããšã§ãããŸãã宿°ã§ããã°ãcounstãããããŠES6ã®ç°å¢ã§ã¯ãletãã䜿ã£ãŠå®çŸ©ãããŠãããŸããç¹ã«ãletãã§ã¯ãvarããšã®ã¹ã³ãŒãã®éãã«æ³šæãå¿
èŠãšããããšã§ããã
ã°ããŒãã«å€æ°ã䜿ãããªããŠæ··ä¹±ã®ãªãããã«ããŠãããŸãããã












