仿¥ãJavaScriptããã¥ã¢ã«ã®ç¿»èš³ã®ç¬¬3éšã§ã¯ã倿°ã宣èšããããŸããŸãªæ¹æ³ãããŒã¿åãåŒãããã³ãªããžã§ã¯ããæäœããæ©èœã«ã€ããŠèª¬æããŸãã
â
ããŒã1ïŒæåã®ããã°ã©ã ãèšèªæ©èœãæšæºâ
ããŒã2ïŒã³ãŒãã¹ã¿ã€ã«ãšããã°ã©ã æ§é â
ããŒã3ïŒå€æ°ãããŒã¿åãåŒããªããžã§ã¯ãâ
ããŒã4ïŒæ©èœâ
ããŒã5ïŒé
åãšã«ãŒãâ
ããŒã6ïŒäŸå€ãã»ãã³ãã³ãã¯ã€ã«ãã«ãŒããªãã©ã«â
ããŒã7ïŒå³æ Œã¢ãŒãããã®ããŒã¯ãŒããã€ãã³ããã¢ãžã¥ãŒã«ãæ°åŠèšç®â
ããŒã8ïŒES6æ©èœã®æŠèŠâ
ããŒã9ïŒES7ãES8ãããã³ES9æšæºã®æŠèŠ
倿°
倿°ã¯ãå€ãå²ãåœãŠãããèå¥åã§ãã 倿°ã¯ããã°ã©ã ã§ã¢ã¯ã»ã¹ã§ããå²ãåœãŠãããå€ã䜿çšããŠãã®æ¹æ³ã§åäœããŸãã
JavaScriptèªäœã®å€æ°ã«ã¯ãæ ŒçŽãããå€ã®ã¿ã€ãã«é¢ããæ
å ±ã¯å«ãŸããŸããã ããã¯ãæååãªã©ã®å€æ°ã«æžã蟌ãããšã§ãåŸã§æ°å€ãæžã蟌ãããšãã§ããããšãæå³ããŸãã ãã®ãããªæäœã¯ãããã°ã©ã ã§ãšã©ãŒãåŒãèµ·ãããŸããã ãã®ãããJavaScriptã¯ãåãªããèšèªãšåŒã°ããããšããããŸãã
倿°ã䜿çšããåã«ã
var
ãŸãã¯
let
ããŒã¯ãŒãã䜿çšããŠå€æ°ã宣èšããå¿
èŠããããŸãã 宿°ã«ãªããšã
const
ããŒã¯ãŒãã䜿çšãããŸãã ãããã®ããŒã¯ãŒãã䜿çšããã«å€æ°ã宣èšããŠç¹å®ã®å€ãå²ãåœãŠãããšã¯å¯èœã§ãããããããããšã¯ãå§ãããŸããã
âããŒã¯ãŒãvar
ES2015æšæºã®åã¯ã
var
ããŒã¯ãŒãã䜿çšããããšã倿°ã宣èšããå¯äžã®æ¹æ³ã§ããã
var a = 0
ãã®æ§æã§
var
çç¥ãããå Žåãå€ã¯å®£èšãããŠããªã倿°ã«å²ãåœãŠãããŸãã ãã®æäœã®çµæã¯ãããã°ã©ã ãå®è¡ãããŠããã¢ãŒãã«ãã£ãŠç°ãªããŸãã
ãã®ãããããããã¹ããªã¯ãã¢ãŒããæå¹ã«ãªã£ãŠãããšããšã©ãŒãçºçããŸãã 峿 Œã¢ãŒããæå¹ã«ãªã£ãŠããªãå Žåã¯ãæé»çãªå€æ°å®£èšãçºçããã°ããŒãã«ãªããžã§ã¯ãã«å²ãåœãŠãããŸãã ç¹ã«ãããã¯ãç¹å®ã®é¢æ°ã§ãã®ããã«æé»çã«å®£èšããã倿°ãããã®é¢æ°ãäœæ¥ãå®äºããåŸã§ãå©çšã§ããããšãæå³ããŸãã éåžžã颿°ã§å®£èšããã倿°ã¯å¶éãè¶
ããªãããšãæåŸ
ãããŸãã æ¬¡ã®ããã«ãªããŸãã
function notVar() { bNotVar = 1 // } notVar() console.log(bNotVar)
ã³ã³ãœãŒã«ã«
1
ååŸããŸããéåžžãããã°ã©ã ãããã®åäœãæåŸ
ãã人ã¯ããŸãããåŒ
bNotVar = 1
ã¯ã倿°ã宣èšããã³åæåããããšããããã«ã¯èŠããŸãããã颿°ã®
bNotVar = 1
å€éšã®
bNotVar = 1
ãã倿°ã«ã¢ã¯ã»ã¹ããããšããããã«èŠããŸãïŒããã¯éåžžã«æ£åžžã§ãïŒã ãã®çµæã倿°ã®æé»çãªå®£èšã¯ãã³ãŒããèªã¿åãäººãæ··ä¹±ãããäºæããªãããã°ã©ã ã®åäœãåŒãèµ·ããå¯èœæ§ããããŸãã åŸã§é¢æ°ãšã¹ã³ãŒãã«ã€ããŠèª¬æããŸããä»ã®ãšãããåŒã®æå³ã倿°ã宣èšããããšã§ããå Žåã¯ãåžžã«ç¹æ®ãªããŒã¯ãŒãã䜿çšããããã«ããŠãã ããã ãã®äŸã§é¢æ°æ¬äœã
var bNotVar = 1
ãšããŠæžãæããããå Žåãäžèšã®ã³ãŒããã©ã°ã¡ã³ããéå§ããããšãããšãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããŸãïŒãã©ãŠã¶ã³ã³ãœãŒã«ã§ç¢ºèªã§ããŸãïŒã
ããšãã°ã次ã®ããã«ãªã
Uncaught ReferenceError: bNotVar is not defined
ã ãã®æå³ã¯ãããã°ã©ã ãååšããªã倿°ã§åäœã§ããªããšããäºå®ã«èŠçŽãããŸãã ãã®ãããªãšã©ãŒã¡ãã»ãŒãžã衚瀺ããã®ã¯ãããã°ã©ã ãæåã«èµ·åãããšãã«ãäºæããªãåäœãããå¯èœæ§ã®ããçè§£ã§ããªãã³ãŒããèšè¿°ãããããã¯ããã«åªããŠããŸãã
倿°ã宣èšãããšãã«åæåããããå€ãå²ãåœãŠãããŠããªãå Žåãå€
undefined
ãèªåçã«å²ãåœãŠãããŸãã
var a //typeof a === 'undefined'
var
ããŒã¯ãŒãã䜿çšããŠå®£èšããã倿°ã¯ãæ°ããå€ãå²ãåœãŠãããšã§ç¹°ãè¿ã宣èšã§ããŸãïŒãã ããã³ãŒããèªãäººãæ··ä¹±ãããå¯èœæ§ããããŸãïŒã
var a = 1 var a = 2
1ã€ã®åŒã§è€æ°ã®å€æ°ã宣èšã§ããŸãã
var a = 1, b = 2
倿°ã®ã¹ã³ãŒãïŒã¹ã³ãŒãïŒã¯ããã®å€æ°ãã¢ã¯ã»ã¹å¯èœãªïŒè¡šç€ºãããïŒããã°ã©ã ã®éšåã§ãã
颿°ã®å€éšã§
var
ããŒã¯ãŒãã§åæåããã倿°ã¯ãã°ããŒãã«ãªããžã§ã¯ãã«å²ãåœãŠãããŸãã ã°ããŒãã«ã¹ã³ãŒããæã¡ãããã°ã©ã ã®ã©ãããã§ãã¢ã¯ã»ã¹ã§ããŸãã 颿°å
ã§
var
ããŒã¯ãŒãã䜿çšããŠå€æ°ã宣èšãããŠããå Žåããã®å€æ°ã¯ããŒã«ã«å€æ°ã§ãããã®é¢æ°å
ã§ã®ã¿è¡šç€ºãããŸãã
ã°ããŒãã«ã¹ã³ãŒãã®ç¹å®ã®å€æ°ã®ååãšååãäžèŽãã
var
ã䜿çšããŠé¢æ°å
ã§å€æ°ã宣èšãããŠããå Žåãã°ããŒãã«å€æ°ãããªãŒããŒã©ã€ããããŸãã ã€ãŸãã颿°å
ã®ãã®ãããªå€æ°ã«ã¢ã¯ã»ã¹ããå Žåããã®ããŒã«ã«ããŒãžã§ã³ã䜿çšãããŸãã
ãããã¯ïŒãã¬ãŒã¹ã§å²ãŸããã³ãŒãã®é åïŒã¯æ°ããå¯èŠé åãäœæããªãããšãçè§£ããããšãéèŠã§ãã 颿°ãåŒã³åºããããšãæ°ããã¹ã³ãŒããäœæãããŸãã
var
ããŒã¯ãŒãã«ã¯ããããã¯ã¹ã³ãŒãã§ã¯ãªããããããæ©èœã¹ã³ãŒãããããŸãã
颿°ã³ãŒãã§å€æ°ã宣èšãããŠããå Žåããã®å€æ°ã¯é¢æ°ã³ãŒãå
šäœã«è¡šç€ºãããŸãã 倿°ã颿°ã³ãŒãã®æ«å°Ÿã§
var
ã§å®£èšãããŠããå Žåã§ãã倿°ãäžããïŒå·»ãäžããïŒã¡ã«ããºã ã¯JavaScriptã§æ©èœãããããã³ãŒãã®å
é ã§åç
§ã§ããŸãã ãã®ã¡ã«ããºã ã¯å€æ°å®£èšããã¬ã€ãºãããŸãããåæåã®æäœã¯ãã¬ã€ãºãããŸããã ããã¯æ··ä¹±ã®åå ã«ãªãå¯èœæ§ãããããã颿°ã®å
é ã§å€æ°ã宣èšããã«ãŒã«ã«ããŠãã ããã
âããŒã¯ãŒãlet
letããŒã¯ãŒãã¯ES2015ã«ç»å ŽããŸããããç°¡åã«èšããš
var
ããããã¯ãããŒãžã§ã³ãšåŒã¶ããšãã§ããŸãã
let
ããŒã¯ãŒãã䜿çšããŠå®£èšããã倿°ã®ç¯å²ã¯ããã¹ãããããããã¯ãšåæ§ã«ã宣èšããããããã¯ãæŒç®åããŸãã¯åŒã«å¶éãããŸãã
ãletããšããåèªèªäœãããŸãæç¢ºã§ãªãããã§ããã°ã代ããã«ãletããšããåèªã䜿çšãããŠãããšæ³åã§ããŸãã æ¬¡ã«ã
let color = 'red'
ãšãã衚çŸã¯
let color = 'red'
è±èªã«ãè²ãèµ€ã«ãããã·ã¢èªã«ãè²ãèµ€ã«ãã®ããã«ç¿»èš³ã§ããŸãã
let
ããŒã¯ãŒãã䜿çšãããšã
var
ããŒã¯ãŒãã«é¢é£ä»ãããããããŸãããåãé€ãããšãã§ããŸãïŒããšãã°ã
let
ã䜿çšããŠåã倿°ãäºé宣èšããããšã¯ã§ããŸããïŒã 颿°ã®å€éšã§
let
ã䜿çšãããšãããšãã°ã«ãŒããåæåãããšãã«ãã°ããŒãã«å€æ°ã¯äœæãããŸããã
ããšãã°ããã®ãããªã³ãŒãã¯ãšã©ãŒã®åå ã«ãªããŸãã
for (let i = 0; i < 5; i++) { console.log(i) } console.log(i)
ã«ãŒãã®åæåäžã«ã
var
ããŒã¯ãŒãã䜿çšããŠã«ãŠã³ã¿ãŒ
i
ã宣èšãããŠããå Žåã
i
ã¯ã«ãŒãã®å®äºåŸã«ã«ãŒãå€ã§äœ¿çšå¯èœã«ãªããŸãã
æè¿ã§ã¯ãçŸä»£ã®æšæºã«åºã¥ããŠJSããã°ã©ã ãéçºããå Žåã
var
ãå®å
šã«ç Žæ£ããŠã
let
ããŒã¯ãŒããš
const
ããŒã¯ãŒãã®ã¿ã䜿çšã§ããŸãã
constããŒã¯ãŒãconst
var
ãŸãã¯
let
ããŒã¯ãŒãã䜿çšããŠå®£èšããã倿°ã¯äžæžãã§ããŸãã ãããã®ããŒã¯ãŒãã®ä»£ããã«
const
䜿çšãããšããã®ãã«ãã§å®£èšããã³åæåããã
const
æ°ããå€ãå²ãåœãŠãããšã¯ã§ããŸããã
const a = 'test'
ãã®äŸã§ã¯ã宿°aã«æ°ããå€ãå²ãåœãŠãããšã¯ã§ããŸããã ãã ãã
a
ãæ°å€ã®ãããªããªããã£ãå€ã§ã¯ãªããªããžã§ã¯ãã®å Žåã
const
ããŒã¯ãŒãã䜿çšããŠãããã®ãªããžã§ã¯ãã倿Žããä¿è·ãããªãããšã«æ³šæããŠãã ããã
ãªããžã§ã¯ãã倿°ã«æžã蟌ãŸããŠãããšèšããšããå®éã«ã¯å€æ°ããªããžã§ã¯ããåç
§ããŠããããšãæå³ããŸãã ãã®ãªã³ã¯ã倿Žããããšã¯ã§ããŸããããŸãããªã³ã¯å
ã®ãªããžã§ã¯ãã倿Žã§ããŸãã
const
ããŒã¯ãŒãã¯ããªããžã§ã¯ããäžå€ã«ããŸããã 察å¿ãã宿°ã«æžã蟌ãŸããåç
§ãžã®å€æŽããä¿è·ããã ãã§ãã ããã¯æ¬¡ã®ãããªãã®ã§ãã
const obj = {} console.log(obj.a) obj.a = 1 // console.log(obj.a) //obj = 5 //
obj
宿°ã§ã¯ãåæåæã«æ°ãã空ã®ãªããžã§ã¯ããæžã蟌ãŸããŸãã ååšããªãããããã£
a
ã«ã¢ã¯ã»ã¹ããããšããŠãããšã©ãŒã¯çºçããŸããã ã³ã³ãœãŒã«ã¯
undefined
ãŸãã ãã®åŸãæ°ããããããã£ããªããžã§ã¯ãã«è¿œå ããå床ã¢ã¯ã»ã¹ã詊ã¿ãŸãã ä»åã¯ããã®ããããã£ã®å€
1
ãã³ã³ãœãŒã«ã«å°éããŸãã äŸã®æåŸã®è¡ã®ã³ã¡ã³ããå€ããå Žåããã®ã³ãŒããå®è¡ããããšãããšãšã©ãŒãçºçããŸãã
const
ããŒã¯ãŒãã¯
let
ã«éåžžã«äŒŒãŠãããç¹ã«ãããã¯ã¹ã³ãŒããæã£ãŠããŸãã
çŸä»£ã®ç¶æ³ã§ã¯ã
const
ããŒã¯ãŒãã䜿çšããŠãç¹å¥ãªå Žåã«ã®ã¿
let
ãå€ã倿Žãããäºå®ã®ãªããã¹ãŠã®ãšã³ãã£ãã£ã宣èšããããšã¯å®å
šã«åãå
¥ããããŸãã ãªãã§ïŒ åé¡ã¯ãããã°ã©ã ãè€éã«ããããšã©ãŒãåé¿ããããã«ãå©çšå¯èœãªæãåçŽãªæ§æã䜿çšããããåªããããšãæåã§ãããšããããšã§ãã
ããŒã¿å
JavaScriptã¯ãåãªããèšèªãšåŒã°ããããšããããŸãããããã§ã¯ãããŸããã ããŸããŸãªåã®å€ã倿°ã«æžã蟌ãããšãã§ããã®ã¯äºå®ã§ãããããã§ãJavaScriptã«ã¯ããŒã¿åããããŸãã ç¹ã«ãããªããã£ãããŒã¿åãšãªããžã§ã¯ãããŒã¿åã«ã€ããŠèª¬æããŠããŸãã
ç¹å®ã®å€ã®ããŒã¿åãæ±ºå®ããã«ã¯ã
typeof
æŒç®åã䜿çšã§ããŸãã ãªãã©ã³ãã®ã¿ã€ãã瀺ãæååãè¿ããŸãã
âããªããã£ãããŒã¿å
ããªããã£ãJavaScriptããŒã¿åã®ãªã¹ãã¯æ¬¡ã®ãšããã§ãã
number
string
ïŒæååïŒboolean
ïŒããŒã«å€ïŒnull
ïŒç¹å¥ãªnull
å€ïŒundefined
ïŒç¹å¥ãªå€undefined
ïŒsymbol
ïŒç¹å¥ãªå Žåã«äœ¿çšãããã·ã³ãã«ãES6ã«ç»å ŽïŒ
ããã§ãããŒã¿åã®ååã¯ã
typeof
æŒç®åãããããè¿ã圢åŒã§äžããããŸãã
ãã®ãªã¹ãããæãäžè¬çã«äœ¿çšãããããŒã¿åã«ã€ããŠè©±ããŸãããã
åçª
JavaScriptã®
number
å€ã¯ã64ãããã®å粟床浮åå°æ°ç¹æ°ãšããŠè¡šãããŸãã
ã³ãŒãã§ã¯ãæ°å€ãªãã©ã«ã¯10鲿°ã·ã¹ãã ã§æŽæ°ãšå°æ°ãšããŠè¡šãããŸãã ä»ã®æ¹æ³ã䜿çšããŠçªå·ãèšé²ã§ããŸãã ããšãã°ãæ°å€ãªãã©ã«ã®å
é ã«ãã¬ãã£ãã¯ã¹
0x
ãããå Žå
0x
é²è¡šèšã§æžãããæ°åãšããŠèªèãããŸãã æ°åã¯ææ°è¡šèšã§æžãããšãã§ããŸãïŒãã®ãããªæ°åã§ã¯æå
e
èŠã€ããããšãã§ããŸãïŒã
æŽæ°ãšã³ããªã®äŸã次ã«ç€ºããŸãã
10 5354576767321 0xCC //
ããã«å°æ°ããããŸãã
3.14 .1234 5.2e4 //5.2 * 10^4
æ°å€ãªãã©ã«ïŒãã®åäœã¯ä»ã®ããã€ãã®ããªããã£ãåã®ç¹åŸŽã§ããããŸãïŒãæäœäžã«ãªããžã§ã¯ããšããŠèªåçã«ã¢ã¯ã»ã¹ããããšãããšã察å¿ãããªããžã§ã¯ãïŒãªããžã§ã¯ãã©ãããŒïŒã«å€æãããŸãã ãã®å Žåããªããžã§ã¯ãã©ãããŒ
Number
ã«ã€ããŠèª¬æããŠããŸãã
ããã§ã¯ãããšãã°ã倿°
a
ã«ã¢ã¯ã»ã¹ãã詊ã¿ã®ããã«èŠããŸãã倿°
a
ã«ã¯ãGoogle Chromeã³ã³ãœãŒã«ã§æ°å€ãªãã©ã«ããªããžã§ã¯ããšããŠæžã蟌ãŸããŸãã
æ°å€ãªããžã§ã¯ãã©ããããŒã«ãããããšãã°ã
Number
åã®ãªããžã§ã¯ãã®
toString()
ã¡ãœããã䜿çšãããšãæ°å€ã®æåå衚çŸãè¿ãããŸãã æ¬¡ã®ããã«ããã©ãŠã¶ã³ã³ãœãŒã«ïŒããã³éåžžã®ã³ãŒãïŒã§å®è¡ã§ãã察å¿ããã³ãã³ãã®ããã«èŠããŸãã
a.toString()
ã¡ãœããåã®åŸã®äºéæ¬åŒ§ã«æ³šæããŠãã ããã ããããå
¥åããªãå Žåãã·ã¹ãã ã¯ãšã©ãŒãåºåããŸããããäºæ³ãããåºåã®ä»£ããã«ãã³ã³ãœãŒã«ã¯æ°å5ã®æåå衚çŸãšã¯ãŸã£ããç°ãªããã®ã«ãªãããšãããããŸãã
ã°ããŒãã«
Number
ãªããžã§ã¯ãã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒã®åœ¢åŒã§äœ¿çšã§ãããã®å©ããåããŠæ°ããçªå·ãäœæããŸãïŒãã®åœ¢åŒã§ã¯ã»ãšãã©äœ¿çšãããŸãããïŒããŸããã€ã³ã¹ã¿ã³ã¹ãäœæããã«ç¬ç«ãããšã³ãã£ãã£ãšããŠäœ¿çšããããšãã§ããŸããã«ãïŒã ããšãã°ããã®
Number.MAX_VALUE
ããããã£ã«ã¯ãJavaScriptã§è¡šçŸã§ããæå€§æ°å€ãå«ãŸããŠããŸãã
ã¿ã€ãæåå
string
åã®å€ã¯
string
ã·ãŒã±ã³ã¹ã§ãã ãã®ãããªå€ã¯ãäžéåŒçšç¬ŠãŸãã¯äºéåŒçšç¬Šã§å²ãŸããæååãªãã©ã«ãšããŠæå®ãããŸãã
'A string' "Another string"
æååå€ã¯ãããã¯ã¹ã©ãã·ã¥æåã䜿çšããŠè€æ°ã®éšåã«åå²ã§ããŸãã
"A \ string"
æååã«ã¯ãæååãã³ã³ãœãŒã«ã«åºåããããšãã«è§£éãããããããããšã¹ã±ãŒãã·ãŒã±ã³ã¹ãå«ãŸããå ŽåããããŸãã ããšãã°ãã·ãŒã±ã³ã¹
\n
ã¯æ¹è¡æåãæå³ããŸãã ããã¯ã¹ã©ãã·ã¥æåã䜿çšããŠãåãåŒçšç¬Šã§å²ãŸããæååã«åŒçšç¬Šã远å ããããšãã§ããŸãã åŒçšæåã
\
ãšã¹ã±ãŒããããšãã·ã¹ãã ã¯ãããç¹æ®æåãšããŠèªèããŸããã
'I\'ma developer'
æååã¯ã
+
æŒç®åã䜿çšããŠé£çµã§ããŸãã
"A " + "string"
ãã³ãã¬ãŒããªãã©ã«
ES2015ã§ã¯ããããããã¿ãŒã³ãªãã©ã«ããŸãã¯ãã¿ãŒã³æååãå°å
¥ãããŸããã ãããã¯ããã¯ã¯ã©ãŒãïŒ
`
ïŒã§å²ãŸããæååã§ãããããã€ãã®è峿·±ãç¹æ§ããããŸãã
`a string`
ããšãã°ããã³ãã¬ãŒããªãã©ã«ã§ã¯ãJavaScriptåŒãè©äŸ¡ããçµæã§ããç¹å®ã®å€ã«çœ®ãæããããšãã§ããŸãã
`a string with ${something}` `a string with ${something+somethingElse}` `a string with ${obj.something()}`
éåŒçšç¬Šã䜿çšãããšãè€æ°è¡ã®æååãªãã©ã«ãç°¡åã«èšè¿°ã§ããŸãã
`a string with ${something}`
ããŒã«å
JavaScriptã«ã¯ãããŒã«å€ãæäœãããšãã«äœ¿çšãããããã€ãã®äºçŽèªããããŸã-ãããã¯
true
ïŒtrueïŒããã³
false
ïŒfalseïŒã§ãã
==
ã
===
ã
<
ã
>
ãªã©ã®æ¯èŒæŒç®ã¯ã
true
ãŸãã¯
false
è¿ã
true
ã
è«çåŒã¯
if
ã
while
ãªã©ã®æ§é ã§äœ¿çšãããããã°ã©ã ã®é²è¡ãå¶åŸ¡ããã®ã«åœ¹ç«ã¡ãŸãã
true
ãŸãã¯
false
ãäºæ³ãããå Žåãèšèªã«ãã£ãŠèªåçã«çïŒçïŒãŸãã¯åœïŒåœïŒãšèŠãªãããä»ã®å€ã䜿çšã§ããããšã«æ³šæããŠãã ããã
ç¹ã«ã以äžã¯åœã®å€ã§ãã
0 -0 NaN undefined null '' //
æ®ãã®å€ã¯trueã§ãã
nullãå
¥å
JavaScriptã«ã¯ãå€ããªãããšã瀺ãç¹å¥ãª
null
å€ããããŸãã ä»ã®èšèªã§ãåæ§ã®æå³ã䜿çšãããŸãã
ã¿ã€ãæªå®çŸ©
ç¹å®ã®å€æ°ã«æžã蟌ãŸãã
undefined
å€ã¯ããã®å€æ°ãåæåãããŠããããå€ããªãããšã瀺ããŸãã
ãã®å€ã¯ã
return
ããŒã¯ãŒãã䜿çšããŠçµæãæç€ºçã«è¿ãããªã颿°ããèªåçã«è¿ãããŸãã 颿°ããåŒã³åºããããšãã«æå®ãããŠããªããã©ã¡ãŒã¿ãŒãåãå
¥ããå Žåã
undefined
èšå®ãããŸãã
undefined
ã®å€ã確èªããã«ã¯ãæ¬¡ã®æ§æã䜿çšã§ããŸãã
typeof variable === 'undefined'
âãªããžã§ã¯ã
ããªããã£ãã§ã¯ãªããã¹ãŠã®å€ã«ã¯ãªããžã§ã¯ãåããããŸãã 颿°ãé
åãããªããžã§ã¯ãããšåŒã°ãããã®ãããã³ä»ã®å€ãã®ãšã³ãã£ãã£ã«ã€ããŠè©±ããŸãã ãããã®ããŒã¿åã¯ãã¹ãŠ
object
åã«åºã¥ããŠãããå€ãã®ç¹ã§äºãã«ç°ãªããŸãããå€ãã®å
±éç¹ããããŸãã
衚çŸ
åŒã¯ãç¹å®ã®å€ã«å¯ŸããŠå®è¡ãããèšç®ã«åºã¥ããŠåŠçããã³ååŸã§ããã³ãŒãã®ãã©ã°ã¡ã³ãã§ãã JavaScriptã«ã¯ããã€ãã®åŒã®ã«ããŽãªããããŸãã
ç®è¡åŒ
èšç®çµæãæ°å€ã§ããåŒã¯ããã®ã«ããŽãªã«åé¡ãããŸãã
1 / 2 i++ i -= 2 i * 2
æåååŒ
ãã®ãããªåŒãè©äŸ¡ããçµæã¯æååã§ãã
'A ' + 'string' 'A ' += 'string'
äžæ¬¡è¡šçŸ
ãªãã©ã«ã宿°ãããã³èå¥åãžã®åç
§ã¯ããã®ã«ããŽãªã«åé¡ãããŸãã
2 0.02 'something' true false this // , undefined i // i
ããã«ã¯ãJavaScriptã®ããŒã¯ãŒããšæ§æã®äžéšãå«ãŸããŸãã
function class function* // yield // / yield* // async function* // await // /pattern/i // () //
é
åãšãªããžã§ã¯ãã®åæååŒ
[] // {} // [1,2,3] {a: 1, b: 2} {a: {b: 1}}
è«çåŒ
è«çåŒã§ã¯ãè«çæŒç®åã䜿çšãããèšç®ã®çµæã¯è«çå€ã«ãªããŸãã
a && b a || b !a
ããããã£ã¢ã¯ã»ã¹åŒ
ãããã®åŒã«ããããªããžã§ã¯ãã®ããããã£ãšã¡ãœããã«ã¢ã¯ã»ã¹ã§ããŸãã
object.property // ( ) object[property] object['property']
ãªããžã§ã¯ãäœæåŒ
new object() new a(1) new MyRectangle('name', 2, {a: 4})
颿°å®£èšåŒ
function() {} function(a, b) { return a * b } (a, b) => a * b a => a * 2 () => { return 2 }
åŒã³åºãåŒ
ãã®ãããªåŒã¯ããªããžã§ã¯ãã®é¢æ°ãŸãã¯ã¡ãœãããåŒã³åºãããã«äœ¿çšãããŸãã
ax(2) window.resize()
ãªããžã§ã¯ããæäœãã
äžèšã§ããªããžã§ã¯ããªãã©ã«ã«ã€ããŠãã¡ãœããã®åŒã³åºãã«ã€ããŠãããããã£ãžã®ã¢ã¯ã»ã¹ã«ã€ããŠãæ¢ã«ãªããžã§ã¯ãã«ééããŠããŸãã ããã§ã¯ããªããžã§ã¯ãã«ã€ããŠè©³ãã説æããŸããç¹ã«ããããã¿ã€ãã®ç¶æ¿ã¡ã«ããºã ãš
class
ããŒã¯ãŒãã®äœ¿çšã«ã€ããŠæ€èšããŸãã
âãããã¿ã€ãç¶æ¿
JavaScriptã¯ããããã¿ã€ãç¶æ¿ããµããŒããããšããç¹ã§ãçŸä»£ã®ããã°ã©ãã³ã°èšèªã®äžã§ãéç«ã£ãŠããŸãã ã»ãšãã©ã®ãªããžã§ã¯ãæåèšèªã¯ãã¯ã©ã¹ããŒã¹ã®ç¶æ¿ã¢ãã«ã䜿çšããŸãã
åJavaScriptãªããžã§ã¯ãã«ã¯ããã®ãããã¿ã€ãã§ããå¥ã®ãªããžã§ã¯ããæãç¹å¥ãªããããã£ïŒ
__proto__
ïŒããããŸãã ãªããžã§ã¯ãã¯ããããã¿ã€ãã®ããããã£ãšã¡ãœãããç¶æ¿ããŸãã
ãªããžã§ã¯ããªãã©ã«ã䜿çšããŠäœæããããªããžã§ã¯ãããããšããŸãã
const car = {}
ãŸãã¯ã
Object
ã³ã³ã¹ãã©ã¯ã¿ã䜿çšããŠ
Object
ãäœæããŸããã
const car = new Object()
ãããã®ãããã®å Žåã§ãã
car
ãªããžã§ã¯ãã®ãããã¿ã€ãã¯
Object.prototype
ãŸãã
ãªããžã§ã¯ãã§ãããé
åãäœæããå Žåããã®ãããã¿ã€ãã¯
Array.prototype
ãªããžã§ã¯ãã§ãã
const list = [] // const list = new Array()
ããã¯æ¬¡ã®ããã«ç¢ºèªã§ããŸãã
car.__proto__ == Object.prototype //true car.__proto__ == new Object().__proto__ //true list.__proto__ == Object.prototype //false list.__proto__ == Array.prototype //true list.__proto__ == new Array().__proto__ //true
ããã§ã¯
__proto__
ããããã£ã䜿çšããŸãããéçºè
ãå©çšã§ããå¿
èŠã¯ãããŸããããéåžžã¯ã¢ã¯ã»ã¹ã§ããŸãã ãªããžã§ã¯ãã®ãããã¿ã€ããååŸããããä¿¡é Œæ§ã®é«ãæ¹æ³ã¯ãã°ããŒãã«
Object
getPrototypeOf()
ã¡ãœããã䜿çšããããš
getPrototypeOf()
ã
Object.getPrototypeOf(new Object())
ãããã¿ã€ãã®ãã¹ãŠã®ããããã£ãšã¡ãœããã¯ããã®ãããã¿ã€ããæã€ãªããžã§ã¯ãããã¢ã¯ã»ã¹å¯èœã§ãã ããã§ã¯ãããšãã°ãé
åã®ãªã¹ãã®ããã«èŠããŸãã
é
åã®ãã³ããã¹ãŠã®ãªããžã§ã¯ãã®åºæ¬ãããã¿ã€ãã¯
Object.prototype
ã§ãã
Array.prototype.__proto__ == Object.prototype
Object.prototype
ãããã¿ã€ãããã
Object.prototype
ãã
äžã§èŠãã®ã¯ããããã¿ã€ããã§ãŒã³ã®äŸã§ãã
ãªããžã§ã¯ãã®ããããã£ãŸãã¯ã¡ãœããã«ã¢ã¯ã»ã¹ããããšãããšãã«ããªããžã§ã¯ãèªäœã«ãã®ãããªããããã£ãŸãã¯ã¡ãœããããªãå Žåããããã¯ãããã¿ã€ãã§æ€çŽ¢ãããæ¬¡ã«ãããã¿ã€ããããã¿ã€ããªã©ã§æ€çŽ¢ãããç®çã®ãã®ãèŠã€ãããŸã§ããŸãã¯ãããã¿ã€ããã§ãŒã³ã¯çµäºããŸããã
new
æŒç®åãšãªããžã§ã¯ããªãã©ã«ãŸãã¯é
åãªãã©ã«ã䜿çšããŠãªããžã§ã¯ããäœæããããšã«å ããŠã
Object.create()
ã¡ãœããã䜿çšããŠãªããžã§ã¯ãã®ã€ã³ã¹ã¿ã³ã¹ãäœæã§ããŸãã ãã®ã¡ãœããã«æž¡ãããæåã®åŒæ°ã¯ãããã䜿çšããŠäœæããããªããžã§ã¯ãã®ãããã¿ã€ãã«ãªããªããžã§ã¯ãã§ãã
const car = Object.create(Object.prototype)
isPrototypeOf()
ã¡ãœããã䜿çšããŠããªããžã§ã¯ããå¥ã®ãªããžã§ã¯ãã®ãããã¿ã€ããã§ãŒã³ã®äžéšã§ãããã©ããã確èªã§ããŸãã
const list = [] Array.prototype.isPrototypeOf(list)
ã³ã³ã¹ãã©ã¯ã¿ãŒé¢æ°
äžèšã§ã¯ãèšèªã§æ¢ã«äœ¿çšå¯èœãªã³ã³ã¹ãã©ã¯ã¿ãŒé¢æ°ã䜿çšããŠæ°ãããªããžã§ã¯ããäœæããŸããïŒåŒã³åºããããšã
new
ããŒã¯ãŒãã䜿çšãããŸãïŒã ãã®ãããªé¢æ°ã¯ç¬ç«ããŠäœæã§ããŸãã äŸãèããŠã¿ãŸãããã
function Person(name) { this.name = name } Person.prototype.hello = function() { console.log(this.name) } let person = new Person('Flavio') person.hello() console.log(Person.prototype.isPrototypeOf(person))
-. ,
this
.
name
, . . - ,
name
, .
,
name
, . , , ,
hello()
. ,
Person
hello()
( ).
â
ES6 JavaScript «».
JavaScript . , JS . , , , « » . , , , , , .
.
class Person { constructor(name) { this.name = name } hello() { return 'Hello, I am ' + this.name + '.' } }
,
new ClassIdentifier()
.
constructor
, .
.
hello()
â , , .
Person
.
const flavio = new Person('Flavio') flavio.hello()
,
. , , , , .
, ( ) , , -, .
class Programmer extends Person { hello() { return super.hello() + ' I am a programmer.' } } const flavio = new Programmer('Flavio') flavio.hello()
hello()
Hello, I am Flavio. I am a programmer
.
(), .
super
.
, , , , , . (
static
) , .
JavaScript , (, ) . , , .
,
get
set
. â , , . -, â .
class Person { constructor(name) { this.userName = name } set name(value) { this.userName = value } get name() { return this.userName } }
ãŸãšã
, , JavaScript. .
芪æãªãèªè
ïŒ JS, , class.
