æ¬è³æã§ã¯ãã¹ã¯ãªããä»ãã¢ã€ãã ãã«æ¡çšãããŠããJavaScriptãšããããã°ã©ãã³ã°èšèªã«ã€ããŠãå ¬åŒãµã³ãã«éã§äœ¿ãããŠããç¯å²ã«çµã£ãŠè§£èª¬ããŸãã
ããã°ã©ãã³ã°çµéšãããå Žåã¯æ¬è³æã®ä»£ããã«JavaScript PrimerïŒãããã¯ååã®æžç±ïŒãåã£æããã«ããããçŽ æŽããããªãã¡ã¬ã³ã¹ã§ããMDN Web Docsãåèã«ããŸãããã
æ¬è³æã«äžæ£ç¢ºãªèšè¿°ãããå Žåã¯ãã²ãææãã ãã(@pocketberserkerã«ã¡ã³ã·ã§ã³ãããã°æ°æ¥å ã«ã¢ã¯ã·ã§ã³ããŸã)ã ã§ããéãä¿®æ£å¯Ÿå¿ããããšèããŠããŸãã
ïŒéå ¬åŒããšæžããã®ã¯äŒç€Ÿã®æ¥åãšã¯é¢ä¿ãªãæéã«æžããããã§ãïŒ
åãã¯ã©ããã¢ã€ãã ãäœã£ãŠã¿ãããåèã«ãã€ã€ãã¹ã¯ãªãããšãã£ã¿ãã³ã³ãœãŒã«ã䜿ããç°å¢ãæŽããŠãã ããã
ã³ã³ãœãŒã«ã§ã¯ããŠãŒã¶ãŒãå
¥åããã³ãŒãã¯è¡é ã« >
ã å
¥åãããã³ãŒããå®è¡ããéã«ååŸããçµæã«ã¯è¡é ã« <
ã衚瀺ãããŸãã
ãŸã $.log
ã§åºåãããã¡ãã»ãŒãžã«ã¯æ
å ±ãã°ãè¡šãã¢ã€ã³ã³ïŒ â¹ïžïŒãã¹ã¯ãªããããšã©ãŒã«ãªã£ããšãã®ã¡ãã»ãŒãžã«ã¯ãšã©ãŒãã°ãè¡šãã¢ã€ã³ã³ïŒèµ€è²ã®â¹ïžïŒãè¡é ã«è¡šç€ºãããŸãã
æ¬è³æã§ã¯ãèµ€è²ã®â¹ïžãè¡šããªãéœåã«ãããšã©ãŒãã°ã®ã¢ã€ã³ã³ãâã§ä»£çšããŠããŸãã
JavaScriptã¯æŽæ°ãå°æ°ãšãã£ãæ°å€ãæ±ããŸãã ã³ã³ãœãŒã«ã§ã¯å ¥åããæ°å€ããã®ãŸãŸè¡šç€ºãããŸãããããã«ããã³ã³ãœãŒã«ãæ°å€ãã¡ãããšèªèããŠãããšããããŸãã
> 3
< 3
> -5
< -5
> 1.1
< 1.1
JavaScriptã§ã¯æ°åãšããã€ãã®èšå·ãçšããèšç®ã¯æ°åŒãšããŠå®è¡ãããŸãã
è©Šãã«2 + 2
ãšã³ã³ãœãŒã«ã«å
¥åããŠãšã³ã¿ãŒããŒãæŒããŠã¿ããšã4
ãšããèšç®çµæã衚瀺ãããã¯ãã§ãã
> 2 + 2
< 4
JavaScriptã«ã¯ããã€ãã®ç®è¡æŒç®ãçšæãããŠãããç®è¡æŒç®ã«çšããããèšå·ãç®è¡æŒç®åãšåŒã³ãŸãã ãã£ãšãç°¡åãªç®è¡æŒç®ã¯ååæŒç®ãšå°äœã§ãã
èšæ³ | 解説 |
---|---|
A + B |
A 足ã B |
A - B |
A åŒã B |
A * B |
A æãã B |
A / B |
A å²ã B |
A % B |
A ã B ã§å²ã£ãäœã |
äžè¬çãªç®æ°ãšåæ§ã«ãã²ãšã€ã®åŒã®äžã§è€æ°ã®ååæŒç®ãçšããããšãã§ããŸãã
ãã®ãšãã®èšç®ã®åªå
é åºãäžè¬çãªæŠå¿µãšåæ§ã§ãïŒäŸ: */
㯠+-
ããå
ã«èšç®ããïŒã
> 1 + 2 * 3
< 7
ãŸããèšç®ã®åªå
é åºãæå®ãããå Žåã¯(
ãš)
ã§å²ã¿ãŸãã
> (1 + 2) * 3
< 9
å€ãã®ããã°ã©ãã³ã°èšèªã§ã¯ãé£ç¶ããæåã®äžŠã³ãè¡šãããŒã¿ãæååãšåŒã³ãŸãã
JavaScriptã§ã¯'
ïŒã·ã³ã°ã«ã¯ã©ãŒãïŒãããã¯"
ïŒããã«ã¯ã©ãŒãïŒã§å²ãã æåãæååãšããŠæ±ããŸãã
> 'ããã«ã¡ã¯'
< ããã«ã¡ã¯
> "Hello Cluster!"
< Hello Cluster!
æåã0åã®æååã¯ç©ºæååãšåŒã°ããŸãã
> ''
<
'
ã"
ã§å²ããªãã£ãå Žåã¯ãšã©ãŒã«ãªããŸãã
å²ãå¿ãã¯ããã°ã©ãã³ã°ã«ãããã¡ãªãã¹ãªã®ã§ããšã©ãŒã衚瀺ãããŠãæ
ãŠãã«å¯ŸåŠããŸãããã
> ããããªã
â ReferenceError: ããããªã is not defined
'
ã§å²ãã æååã®äžã§'
ã䜿ããããšãããããã¯"
ã§å²ãã æååã®äžã§"
ã䜿ããããšãã«ã¯\
(ããã¯ã¹ã©ãã·ã¥ãWindowsã§ã¯Â¥
èšå·ã衚瀺ãããããšã)ãçŽåã«çœ®ãå¿
èŠããããŸãã
ããããšã¹ã±ãŒããšåŒã³ãŸãã
> 'I\'m cluster user.'
< I'm cluster user.
æååã¯ä»ã®æååãæ°å€ãš+
èšå·ã§é£çµããããšã§æ°ããªæååãšãªããŸãã
> 'Hello' + 'Cluster'
< HelloCluster
> 1 + ' + ' + 1 + ' = ' + 2
< "1 + 1 = 2"
'
ãš"
ã«æå³çãªéãã¯ãªããã©ã¡ãã䜿ããã¯éçºè
ã®å¥œã¿ãéçºãããžã§ã¯ããæ¡çšããã³ãŒãã£ã³ã°èŠçŽïŒããã°ã©ã ã®æžãæ¹ã«é¢ãã決ãŸãããšïŒã«ãã£ãŠç°ãªããŸãã
æ¬è³æã§ã¯äž»ã«'
ã䜿çšããŠããŸããã奜ã¿ã«ããããŠ"
ã«çœ®ãæããŠãåäœã«åœ±é¿ã¯ãããŸããã
å€æ°ã¯å€ã«ååãã€ããèå¥ãããããããåå©çšããããããããã®æ©èœã§ãã
JavaScriptã§ã¯let
ããŒã¯ãŒãã䜿ãããšã§å€æ°ãå®çŸ©ã§ããŸãã
å€æ°ã«å€ãã»ããããããšã代å
¥ãšåŒã³ãŸãã
å€æ°ãå®çŸ©ãããŠããªãå Žåã¯ãšã©ãŒãšãªããŸãã
è©Šãã«ã³ã³ãœãŒã«ã«i
ãšå
¥åããŠãã ããã
> i
â ReferenceError :i is not defined
次ã«å€æ°i
ãå®çŸ©ããi
ã«10
ã代å
¥ããŠããi
ãåŒã³åºããŠã¿ãŸãããã
ãã®ãšããäºåã«å®çŸ©ãããå€æ°i
ã«ã»ããããã10
ã衚瀺ãããŸãã
> let i = 10
< undefined
> i
< 10
å€æ°åã¯ããçšåºŠèªç±ã«ã€ããããŸããããœãŒã¹ã³ãŒããåŸããèªã¿è¿ããšãã«ç解ãããããããªååãã€ããã¹ãã§ãã
å®çŸ©ããå€æ°ã¯ãå¥ã®å€æ°ãå®çŸ©ããéãæååãšã®é£çµã«ã䜿ããŸãã
> let j = i * 2
< undefined
> i + 'ã®2åã¯' + j + 'ã§ã'
< 10ã®2åã¯20ã§ã
æ°å€ãã»ããããå€æ°ã«ã¯++
ïŒã€ã³ã¯ãªã¡ã³ãïŒãš--
ïŒãã¯ãªã¡ã³ãïŒãšããç®è¡æŒç®åã䜿ããŸãã
++
ã¯æå®ããå€æ°ã«ã»ãããããæ°å€ãçµæãšããŠè¿ãã€ã€ããã®æ°å€ã«1
å ããå€ãå€æ°ãžã»ããããŸãã
--
ã¯éã«ã1
æžãããå€ãå€æ°ã«ã»ããããŸãã
> let i = 0
< undefined
> i++
< 0
> i
< 1
> i--
< 1
> i
< 0
let
ããŒã¯ãŒãã§å®çŸ©ããå€æ°ã«ã¯å¥ã®å€ãå代å
¥ã§ããŸãã
å代å
¥ããå Žåã«ã¯let
ã¯å¿
èŠãããŸããã
> i = 5
< 5
> i
< 5
ãŸããæŒç®ãšä»£å
¥ãçç¥ããŠèšè¿°ã§ããè€å代å
¥æŒç®åããããŸãã
äŸãã°å·ŠåŽã®å€æ°ã®å€ãšå³åŽã®å€ãå ç®ããçµæãå€æ°ã«ä»£å
¥ããéã«ã¯+=
ãçšããããšãã§ããŸãã
> i = 1
> i
< 1
> i += 2
> i
< 3
è€åä»£å ¥æŒç®åã¯æ°ãå€ãã®ã§ãä»ã«ã©ããããã®ããããã¯èª¿ã¹ãŠã¿ãŠãã ããã
ããã°ã©ãã³ã°ã§ã¯ãæ¯ãã¬ãŒã ããšã«ç§»åãããè·é¢ããšãã£ãåºå®ã®å€ã«ååãä»ãããããšããããŸãã å ã»ã©èª¬æããå€æ°ã§ãååãä»ããããŸãããå®æ°ãšããæ©èœãçšãããšåä»£å ¥ã§ããªãããšïŒå€ãåºå®ã§ããããšïŒãããã°ã©ã äžã§ä¿èšŒã§ããŸãã åä»£å ¥ã§ããªãããã«ããããšã§æå³ããªãå€ã®å€æŽãæ€ç¥ã§ããããã«ãªããŸãã
JavaScriptã§ã¯const
ããŒã¯ãŒãã§å®æ°ãå®çŸ©ã§ããŸãã
> const speed = 1.0
< undefined
> const range = 2.0
< undefined
å®æ°ã«ã¯å代å
¥ãè¡ããŸããã
è©Šãã«å
ã»ã©å®çŸ©ãã speed
ã«å€ã代å
¥ããŠã¿ããšãå®æ°ã«ä»£å
¥ã§ããªãããšãããããŸãã
> speed = 2.0
â TypeError: Assignment to constant variable.
å€ãå€æŽããå¿
èŠã®ãªãå€æ°ã¯ç©æ¥µçã«å®æ°ã«çœ®ãæããŸããã
ïŒãã ããã³ã³ãœãŒã«ã§ã¯å®æ°ãäžåºŠå®çŸ©ãããšå€ãå€æŽã§ããªããªã£ãŠããŸãã®ã§ã以éã®ãµã³ãã«ã§ã¯ let
ãçšããå ŽåããããŸãïŒã
JavaScriptã§ã¯åŠçãå®è¡ãã1ã¹ããããæãšåŒã³ãŸãã
æãšæã¯äž»ã«;
ïŒã»ãã³ãã³ïŒã䜿ã£ãŠåºåããŸãã
æ;
æ;
æ;
...
JavaScriptã«ã¯;
ããªãæã«ãè¡æ«ã«;
ãèªåæ¿å
¥ããç¹æ®ã«ãŒã«ããããŸãã
ãããããã®ã«ãŒã«ã¯æå³ããªãæåãåŒãèµ·ããããããããå®éã®ã³ãŒãã§ã¯æã«;
ãã€ããããšãå€ãã§ãã
ãã ããã³ã³ãœãŒã«ã«ãããŠ1è¡ãã€å
¥åããŠã³ã³ãœãŒã«ããã®å¿çãåŸ
ã€å Žåã¯;
ãçç¥ããããšããããŸãã
ãããŸã§;
ãæžããã«ããã®ã¯ãããçç±ã§ãã
ãŸããåŸã»ã©ç»å Žããif
æãfor
æã®æ«å°Ÿã«;
ãæžãå¿
èŠã¯ãããŸããã
ããã°ã©ã ãå¹ççã«æžãããèªã¿ããããã®ã«ããéå ·ã®ã²ãšã€ã«é¢æ°ããããŸãã é¢æ°ã¯äœãå€ãåãåã£ãŠãé¢æ°å ã«æžãããåŠçãå®è¡ããŸãïŒäœãåãåããªãé¢æ°ãå®çŸ©ã§ããŸãïŒã
äŸãã°ãScriptableItemã®ãœãŒã¹ã³ãŒãå
ã§äœ¿çšå¯èœãª $.log
ã¯æž¡ããæ°å€ãæååãå€æ°ãã³ã³ãœãŒã«ã«è¡šç€ºããŠãããé¢æ°ã§ãïŒå³å¯ãªèª¬æããããšããããããªãã®ã§ãããã§ã¯ãŸã ããããããšã«ããŠãããŠãã ããïŒã
> $.log("Hello Cluster!")
â¹ïž Hello Cluster!
< null
> $.log(speed)
â¹ïž 1
< null
ã³ã³ãœãŒã«ã«æ°åãæååãçŽæ¥å
¥åããŠãããšããšç°ãªããã€ã³ãã©ã¡ãŒã·ã§ã³ã®åºåãšããŠçµæã衚瀺ããããšæããŸãã
ããã¯ãã³ã³ãœãŒã«ã«å€ãå
¥åãããšãã«çµæã衚瀺ãããã®ã¯ãå
¥åããããã°ã©ã ã«ãã£ãŠåŸãããæåŸã®èšç®çµæã衚瀺ãããã³ã³ãœãŒã«ã®æ©èœã§ããããšã«å¯Ÿãã$.log
ã¯ãæž¡ããããã®æç¹ã®å€ãã³ã³ãœãŒã«ã«è¡šç€ºããããšããéãããããŸãã
$.log
ã¯ScriptableItemã§ãããããçšæãããé¢æ°ã§ãããé¢æ°ã¯èªåã§å®çŸ©ããããšãã§ããŸãã
JavaScriptã§ã¯ãé¢æ°ã¯å€æ°ãšåæ§ã«ããçšåºŠèªç±ã«ååã決ããããŸãã ä»åã¯æ¬¡ã®ãããªåœ¢åŒã§é¢æ°ãå®çŸ©ããããšã«ããŸãïŒæ¬¡ã®ã³ãŒãã¯å®è¡ã§ããŸããïŒã
const é¢æ°å = (åŒæ°) => {
ããã«åŠçãæžã
};
ãŸãã¯åçŽã«Hello Cluster!
ã衚瀺ããã ãã®é¢æ°ãå®çŸ©ããŠã¿ãŸãã
> const sayHelloCluster = () => {
$.log('Hello Cluster!');
};
é¢æ°ã¯å®çŸ©ããã ãã§ã¯äœãèµ·ããŸããã å®çŸ©ããé¢æ°ãåŒã³åºãããšã§ã¯ãããŠãé¢æ°å ã«èšè¿°ããã³ãŒããå®è¡ãããŸãã
> sayHelloCluster()
â¹ïž Hello Cluster!
> undefined
é¢æ°ãåŒã³åºãéã«åŒã³åºãåŽããå€ãæž¡ããããã åŒæ°ïŒã²ãããïŒ ãèšå®ããããšãã§ããŸãã
ã§ã¯ãåŒæ°ã®å€ãçšããŠHello **!
ãšã³ã³ãœãŒã«ã«è¡šç€ºããsayHello
é¢æ°ãå®çŸ©ããŠã¿ãŸãããã
> const sayHello = (name) => {
$.log('Hello ' + name + '!');
};
æž¡ãããå€ãæ¬åŒ§å ã«æå®ããŠé¢æ°ãå®è¡ããŸãã
> sayHello("Cluster")
â¹ïž Hello Cluster!
> sayHello("World")
â¹ïž Hello World!
äœåã䌌ããããªåŠçãè¡ãããå Žåããããã²ãšãŸãšãŸãã®åŠçã«ååãä»ãããå Žåã¯é¢æ°ãšããŠå®çŸ©ããããšãèããŠã¿ãŠãã ããã
ããã°ã©ãã³ã°ã§æ±ãããŒã¿ã¯æ°å€ãæååã®ã»ãã«ãããŸããŸãªåœ¢åŒããããŸãã ãã®ãã¡ã®ã²ãšã€ãççå€ãšåŒã°ããããŒã¿åœ¢åŒïŒããŒã¿åïŒã§ãã
ççå€ã¯çïŒtrue
ïŒãšåœïŒfalse
ïŒã®2ã€ã®å€ãããªãããŒã¿åã§ãåŸè¿°ããæ¯èŒæŒç®ãè«çæŒç®ã®çµæãšããŠçšããããŠããŸãã
ãŸããè€éãªåŠçãè¡ãããã®æ¡ä»¶åå²ãç¹°ãè¿ãæ§æãç解ããã«ã¯å¿
é ãšèšã£ãŠãããéèŠãªããŒã¿åã«ãªããŸãã
äŸãšããŠãããåããŠããã¢ã€ãã ã®é床itemSpeed
ãéããé
ãããå€å®ããŠåºåããããšãèããŠã¿ãŸãã
ããã§ã¯10æªæºããé
ããã20以äžã¯ãéããããã®éã¯ãæ®éããšå®çŸ©ããŸãã
ããšãã°ãå€æ°itemSpeed
ã®å€ã10
以äžïŒé
ãïŒãããšããæ¡ä»¶ããã£ããšãããã®æ¡ä»¶ã®çµæ㯠ãæ¡ä»¶ãæºããïŒtrue
ïŒã ã ãæ¡ä»¶ãæºãããªãïŒfalse
ïŒã ã®ããããã§ãã
ãã®ããã«å€ãæ¯èŒããããšãæ¯èŒæŒç®ãšåŒã³ããã®çµæã¯å¿
ãççå€ïŒtrue
ãããã¯false
ïŒãšãªããŸãã
å€ã®æ¯èŒãè¡ãå ŽåãJavaScriptã§ã¯æ¬¡ã®ãããªæ¯èŒæŒç®åã䜿ããŸãã
èšæ³ | 解説 |
---|---|
A < B | AãBããå°ãããã°çïŒAã¯Bæªæºã§ããïŒ |
A <= B | AãBããå°ãããŸãã¯çãããã°çïŒAã¯B以äžã§ããïŒ |
A > B | AãBãã倧ãããã°çïŒAã¯Bãã倧ããïŒ |
A >= B | AãBãã倧ãããŸãã¯çãããã°çïŒAã¯B以äžã§ããïŒ |
A === B | AãšBãçãããã°çïŒAãšBã¯çããïŒ |
A !== B | AãšBãç°ãªãã°çïŒAãšBã¯ç°ãªãïŒ |
ããšãã°ããå€æ°itemSpeed
ã®å€ã¯10
æªæºã§ããããšããæ¯èŒãJavaScriptã§è¡šçŸãããšitemSpeed < 10
ãšãªããŸãã
> let itemSpeed = 6.5
> itemSpeed < 10
< true
ä»åèããããšããŠããã¹ããŒããã§ãã¯ã§"æ®é"ãšå€æããæ¡ä»¶ã¯ãitemSpeed
ã10
以äžãã€20
æªæºãã§ããããšã§ãã
ãã®ããã«ã2ã€ã®ççå€ãçµã¿åãããŠã²ãšã€ã®ççå€ãçµæãšããæŒç®ãè«çæŒç®ãšåŒã³ãJavaScriptã§ã¯è«çæŒç®åãçšããŠèšè¿°ããŸãã
èšæ³ | æå³ | 解説 |
---|---|---|
A && B | è«çç©ïŒANDïŒ | å·Šå³ãã©ã¡ããçãªãçïŒAãã€BïŒ |
A || B | è«çåïŒORïŒ | å·Šå³ã©ã¡ãããçãªãçïŒAãŸãã¯BïŒ |
!A | è«çåŠå®ïŒNOTïŒ | ççå€ãå転ãããïŒAã§ã¯ãªãïŒ |
ãå€æ°itemSpped
ã¯10
以äžãã€20
æªæºããšããæ¡ä»¶ãJavaScriptã§è¡šããšæ¬¡ã®ãããªã³ãŒãã«ãªããŸãã
> itemSpeed = 15
> itemSpeed >= 10 && itemSpeed < 20
< true
ãŸãããæ®éã®ã¹ããŒãã§ã¯ãªãããšããæ¡ä»¶ã¯ãitemSpeed
ã10
æªæºãããã¯20
以äžã§ããããšãããŸãã
> itemSpeed = 8
> itemSpeed < 10 || itemSpeed >= 20
< true
ççå€ãæ¡ä»¶åŒã«!
ãã€ãããštrue
ãšfalse
ãå転ããŸãã
ãŸããæ¯èŒæŒç®ãè«çæŒç®ã«ãéåžžã®ååæŒç®ãšåæ§ã«åªå
é äœãããã()
ã§å²ãããšã«ããåªå
ããŠèšç®ãããããšãå¯èœã§ãã
次ã®äŸã§ã¯ãitemSpeed
ã10
æªæºã§ã¯ãªãããšããæ¡ä»¶ãJavaScriptã§æžãããã®ã«ãªããŸãã
> !(itemSpeed < 18.5)
< false
æ¯èŒæŒç®åãè«çæŒç®åã䜿ã£ãåŒãæ¡ä»¶åŒãšåŒã³ãŸãã æ¡ä»¶åŒãããŸã䜿ãããšã«ããããy座æšã0以äžãã€100以äžã§ãããã®ãããªè€éãªæ¡ä»¶ãããã°ã©ã ã§è¡šçŸã§ããããã«ãªããŸãã
ãããŠãã®ããã°ã©ãã³ã°èšèªã«ã¯ãæ¡ä»¶åŒã®çµæã«ãã£ãŠç°ãªãåŠçããããæ¡ä»¶åå²ãšåŒã°ããæ©èœãååšããŸãã
JavaScriptã§ã¯if
æãçšããŠæ¡ä»¶åå²ãè¡šçŸããŸãïŒæ¬¡ã®ã³ãŒãã¯å®è¡ã§ããŸããïŒã
if (æ¡ä»¶åŒ) {
æ¡ä»¶åŒãæºããå Žåã«å®è¡ãããåŠç
}
if
ã®çŽåŸã«ãã()
å
ã®æ¡ä»¶åŒãtrue
ãªãã°ãããã«ç¶ã{}
å
ã®åŠçãè¡ãããŸãã
> itemSpeed = 6;
> if (itemSpeed < 10) {
$.log('ãã®ã¢ã€ãã ã¯é
ãã§ã');
}
â¹ïž ãã®ã¢ã€ãã ã¯é
ãã§ã
> itemSpeed = 15;
< undefined
> if (itemSpeed < 10) {
$.log('ãã®ã¢ã€ãã ã¯é
ãã§ã');
}
< undefined
æ¡ä»¶ãæºãããªãå ŽåïŒåœã®å ŽåïŒã®åŠçãèšè¿°ããããšãã¯else
æã䜿ããŸãã
ãŸããelse if
æãçšããŠããã«çŽ°ããæ¡ä»¶åå²ããããããšãå¯èœã§ãã
if ~ else
æã¯äžããé ã«åŠçãããŠãããæ¡ä»¶ã«åèŽãããã®ãããã°ç¶ã{}
ã®äžã ããå®è¡ãããä»ã®åŠçã¯å®è¡ãããŸããïŒæ¬¡ã®ã³ãŒãã¯å®è¡ã§ããŸããïŒã
if (æ¡ä»¶åŒ1) {
æ¡ä»¶åŒ1ãæºããå Žåã«å®è¡ãããåŠç
} else if (æ¡ä»¶åŒ2) {
æ¡ä»¶åŒ2ãæºããå Žåã«å®è¡ãããåŠç
} else if (æ¡ä»¶åŒ3) {
...
} else if (æ¡ä»¶åŒN) {
æ¡ä»¶åŒNãæºããå Žåã«å®è¡ãããåŠç
} else {
æ¡ä»¶åŒ1~Nãæºãããªãå Žåã«å®è¡ãããåŠç
}
ããã§ãitemSpeedã10
æªæºã¯é
ã
ã20
以äžã¯éã
ããã®éã¯æ®é
ããšããè€éãªæ¡ä»¶åå²ãè¡šçŸã§ããããã«ãªããŸããã
> itemSpeed = 30
> if (itemSpeed < 10) {
$.log(''ãã®ã¢ã€ãã ã¯é
ãã§ã'');
} else if (itemSpeed >= 20) {
$.log(''ãã®ã¢ã€ãã ã¯éãã§ã'');
} else {
$.log(''ãã®ã¢ã€ãã ã¯æ®éã®é床ã§ã');
}
â¹ïž ãã®ã¢ã€ãã ã¯éãã§ã
ããã°ã©ãã³ã°ãããŠãããšãããã€ãã®åããããªããŒã¿ã倧éã«æ±ãããããšããããŸãã JavaScriptã§ã¯ãè€æ°ã®ããŒã¿ããŸãšããŠæ±ãããã«é åãšããããŒã¿æ§é ãçšæãããŠããŸãã
é
åã¯[]
ã§å²ã¿ãããããã®ããŒã¿ã¯,
åºåãã§è¡šçŸããŸãã
let names = ['alice', 'bob', 'charlie']
é
åã®åããŒã¿ïŒèŠçŽ ïŒã«ã¢ã¯ã»ã¹ããã«ã¯ã[]
ã«èŠçŽ ã®çªå·ïŒã€ã³ããã¯ã¹ïŒãæå®ããŸãã
å
é ã®ã€ã³ããã¯ã¹ã0
ã§ããããšã«æ°ãã€ããŠãã ããã
> names[1]
< bob
é åã«ã¯æååãæ°å€ãå€æ°ãªã©ããŸããŸãªããŒã¿åãæ ŒçŽã§ããŸãã
> let dog = 'ããŒãã«'
> let anything = [10, 'string', dog]
> anything[2]
< "ããŒãã«"
ãã ããè€æ°ã®ããŒã¿åãã²ãšã€ã®é åã«ãããã®ã¯æ··ä¹±ã®ããšã«ãªããããããé¿ããã¹ãã§ãã è€æ°ã®ããŒã¿åãã²ãšãŸãšãã«ãããå Žåã¯åŸè¿°ãããªããžã§ã¯ããå©çšããŸãããã
é åã«å€ãè¿œå ãããäžæžããããå Žåã¯ãã€ã³ããã¯ã¹ãæå®ããŠå€ãä»£å ¥ããŸãã
> names[2] = 'charlotte'
> names[3] = 'daisy'
> names[2]
< charlotte
> names[3]
< daisy
'charlie'
ã'charlotte'
ã«äžæžããããæ°ãã'daisy'
ãè¿œå ãããŸããã
ãã ãé
åã«å€ãè¿œå ããå Žåã¯åŸè¿°ããã¡ãœããïŒ é
åã push
ã§èª¿ã¹ãŠã¿ãŠãã ãã ïŒãçšããæžãæ¹ã䜿ãã»ããå€ãã§ãã
åŸããå€ãèšå®ããããã«ãäœãå ¥ã£ãŠããªãé åïŒç©ºé åïŒãå®çŸ©ããããšãå¯èœã§ãã
> let numbers = []
> numbers[0] = 0
> numbers[1] = 1
> numbers[2] = 2
ããã°ã©ã ãåŸæãªä»äºã®ã²ãšã€ãšããŠç¹°ãè¿ãããããŸãã åããããªäœæ¥ãäœåãšãªãç¹°ãè¿ããšäººéã¯ç²ããããã¹ãããäžæ©å«ã«ãªã£ããããŸãããããã°ã©ã ã¯æå¥ããããééãããç²ã ãšäœæ¥ãããªããŠãããŸãã
ããã°ã©ã ãç¹°ãè¿ãåŠçãè¡ãããšãã«ãŒããšåŒã³ãŸãã
JavaScriptã«ã¯ããã€ãã®ã«ãŒãæ§æããããŸãããããã§ã¯ãã£ãšãåºæ¬çãªfor
æã«ã€ããŠèª¬æããŸãïŒæ¬¡ã®ã³ãŒãã¯å®è¡ã§ããŸããïŒã
for (åæååŠç; ã«ãŒãã®ç¶ç¶æ¡ä»¶; 1ã«ãŒãçµäºæã®åŠç) {
ç¹°ãè¿ãåŠç
}
- åæååŠç
- ã«ãŒãã®æåã«1åã ãå®è¡ãããŸã
- ã«ãŒãã®ç¶ç¶æ¡ä»¶
- æ¡ä»¶åŒã
true
ã§ããã°ãçŽåŸã®{}
å ã«èšè¿°ããããç¹°ãè¿ãåŠçããå®è¡ãããŸã
- æ¡ä»¶åŒã
- 1ã«ãŒãçµäºæã®åŠç
- ãç¹°ãè¿ãåŠçããå®è¡ããåŸã«å®è¡ãããŸã
åæååŠçã§ã«ãŒãéå§æ¡ä»¶ã決ããã«ãŒãã®ç¶ç¶æ¡ä»¶ãtrue
ã§ããéç¹°ãè¿ãããšããæµããæ³åããŠãã ããã
> for (let i = 1; i <= 5; i++) {
$.log(i);
}
â¹ïž 1
â¹ïž 2
â¹ïž 3
â¹ïž 4
â¹ïž 5
< null
(let i = 1; i <= 5; i++)
ã¯æ¬¡ã®ãããªããšãè¡šããŠããŸãã
- åæååŠç
i
ãšããå€æ°ãå®çŸ©ããåæå€ãšããŠ1
ãä»£å ¥ããŸã
- ã«ãŒãã®ç¶ç¶æ¡ä»¶
i
ã5
以äžã®å Žåãã«ãŒããç¶ç¶ããŸã
- 1ã«ãŒãçµäºæã®åŠç
i
ã 1 ãã€å¢ãããŸã
ã€ãŸãäžèšã®ã³ãŒãã¯ãi
ã¯1
ããå§ãŸãã1
ãã€å¢å ããi
ã5
ãè¶
ãããŸã§ã³ã³ãœãŒã«è¡šç€ºãç¹°ãè¿ããã«ãŒãã«ãªããŸãã
ã«ãŒãïŒç¹°ãè¿ãåŠçïŒã¯ãé åã®ãããªãããã䞊ãã ããŒã¿ã«å¯ŸããŠåãåŠçãè¡ããšãã«ç䟡ãçºæ®ããŸãã äŸãšããŠãé åã®å šããŒã¿ã10åã«ããŠè¡šç€ºããã³ãŒããæžããŠã¿ãŸãããã
> let numbers = [3, 5, 12, 6, 0];
> let length = numbers.length;
é
åã«å¯ŸããŠ.length
ãèšè¿°ããããšã§ããã®é
åã®èŠçŽ æ°ãååŸã§ããŸãã
ãã®å Žåã¯5
ãlength
å®æ°ãšããŠå®çŸ©ãããŠããŸãã
> for (let i = 0; i < length; i++) {
$.log(numbers[i] * 10);
}
â¹ïž 30
â¹ïž 50
â¹ïž 120
â¹ïž 60
â¹ïž 0
é¢é£ããè€æ°ã®ããŒã¿ãã²ãšãŸãšãã«ããããã«å©çšãããããŒã¿åã®ã²ãšã€ããªããžã§ã¯ãã§ãã ãªããžã§ã¯ãã¯ããããã£ã®éãŸãã§ãããããããã£ã¯ååïŒãããã¯ããŒïŒãšå€ã®ãã¢ããæãç«ã£ãŠããŸãïŒæ¬¡ã®ã³ãŒãã¯å®è¡ã§ããŸããïŒã
{
ããããã£å1: å€,
ããããã£å2: å€,
...
ããããã£åN: å€
}
.
ïŒãããïŒã«ç¶ããŠããããã£åãèšè¿°ãããšããªããžã§ã¯ãã«å®çŸ©ãããããããã£ã«èšå®ãããŠããå€ãååŸã§ããŸãã
ãªããžã§ã¯ãã®ããããã£ã«ã¯æååã䜿ã£ãŠã¢ã¯ã»ã¹ããããšãå¯èœã§ãã
> let person = {
name: 'Swanman',
age: 20
}
< undefined
> person.name
< Swanman
> person["age"]
< 20
ããããã£ã«ã¯é¢æ°ãèšå®ããããšãã§ããJavaScriptã§ã¯ãªããžã§ã¯ãã®ããããã£ã«èšå®ãããé¢æ°ã®ããšãã¡ãœãããšåŒã³ãŸãã ã¡ãœãããåŒã³åºãæ¹æ³ã¯é¢æ°ãšããããã£ã®åŒã³åºããåããã圢ã«ãªããŸãã
> let greeting = {
hello: () => {
return 'Hello!';
}
}
< undefined
> greeting.hello()
< Hello!
ãããŸã§$.log
ãé¢æ°ãšããŠæ±ã£ãŠããŸããããå®ã¯$ãšããååã§å®çŸ©ãããå®æ°ïŒãªããžã§ã¯ãïŒã®logã¡ãœãã
ãããæ£ç¢ºãªè¡šçŸã§ãã
åç¯ã§ãªããžã§ã¯ãã®ããããã£åŒã³åºãã玹ä»ããŸããããã¯ãããŠååšããªãããããã£ãåŒã³åºãããã©ããªãã§ãããïŒ
> person.icon
< undefined
ãšããããšã§ãååšããªãããšãè¡šãå€undefined
ãçµæãšããŠåŸãããŸãã
ããŠããããããJavaScriptåºæã®é¢åããã話ãªã®ã§ãããundefined
ãifæã®æ¡ä»¶åŒã«æž¡ããå Žåã¯èªåçã«false
ãšå€å®ãããŸãã
ããã«undefined
ã!
ã§å転ããããštrue
ãåŸãããŸãã
ãã®ããšãå©çšããŠãç¹å®ã®ããããã£ã«å€ãèšå®ãããŠããªããšãã«åŠçãå®è¡ãããæ¹æ³ããããŸãã
> if (!person.icon) {
$.log(person.name + 'ãããiconãèšå®ããŠãã ããïŒ');
}
â¹ïž Swanmanãããiconãèšå®ããŠãã ããïŒ
JavaScriptã«ã¯æå³çã«å€ããªãããšãè¡šã null
ãçšæãããŠããŸãã
null
ãš undefined
ã¯ç䟡ãªå€ã§ãªããã€ãŸã null === undefined
㯠false
ã§ããããšã«æ³šæããŠãã ããã
ã¯ã©ã¹ã¯ã€ã³ã¹ã¿ã³ã¹ãšåŒã°ãããªããžã§ã¯ããçæããããã®ãã³ãã¬ãŒãã§ãã ãã³ãã¬ãŒããšæžããéããã¯ã©ã¹ãå®çŸ©ããã ãã§ã¯ããŒã¿ã¯äœãçæãããŸããã
æ£çŽãªãã®ãã£ã¡ãã ãšæãã®ã§ãããã§ã¯ç¬èªã¯ã©ã¹ã®å®çŸ©ã«ã€ããŠã¯å¿ããCluster Creator Kit ScriptãæäŸããŠããã¯ã©ã¹ã®äœ¿ãæ¹ãããã€ãŸãã§çŽ¹ä»ããŸãã
ScriptableItemã«ã¯Vector2ãVector3ãQuaternionãšãã3ã€ã®ã¯ã©ã¹ãæåããçšæãããŠããŸãã
ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã¯new ã¯ã©ã¹å()
ã®åœ¢åŒã§çæã§ããŸãã
åã¯ã©ã¹ã«ã¯ã€ã³ã¹ã¿ã³ã¹ãçæããéã«åæå€ãæå®ã§ããŸãã
ã€ã³ã¹ã¿ã³ã¹çææã«æå®ã§ãããã®ã¯ã¯ã©ã¹ããšã«æ±ºãŸã£ãŠããŠãäŸãã°Vector3ã®x
ãy
ãz
ã«åæå€ãšããŠãããã0.0
ã0.0
ã1.0
ãèšå®ããããªãnew Vector3(0.0, 0.0, 1.0)
ãšããèšè¿°ã«ãªããŸãã
Vector2ãVector3ãQuaternionã«ã¯è²ã ãªã¡ãœãããå®çŸ©ãããŠããã®ã§ãæ°ã«ãªãæ¹ã¯Cluster Creator Kit Script Referenceãã確èªãã ããã
ããã°ã©ã ã¯ãããŸã§ã«ç»å Žããå€æ°ãé¢æ°ãæ¡ä»¶åå²ãã«ãŒããããã€ãéãŸã£ãŠã§ããŠããŸãã
ããããæ¢åã®ããã°ã©ã ããã¯ãã©ãåãããã¯èªã¿åããŠãããªããã®ãããªåŠçãæžããã®ãããèªã¿åããªãããšãå€ãã§ãã ãããã£ãå®è£ æå³ãããã°ã©ã ã®ãã°ã«èšè¿°ã§ããããã«ãããã°ã©ãã³ã°èšèªã«ã¯ã³ã¡ã³ããšããæ©èœãçšæãããŠããŸãã ã³ã¡ã³ãã¯ããã°ã©ã ãå®è¡ããéã«ç¡èŠãããããã«äœãããŠããŸãã
JavaScriptã«ã¯1è¡ã³ã¡ã³ããšè€æ°è¡ã³ã¡ã³ããšãããµãã€ã®æžãæ¹ãçšæãããŠããŸãã
1è¡ã³ã¡ã³ã//
ã¯ã//
以éã®åäžè¡ã«ããæååãã³ã¡ã³ããšããŠæ±ããŸãã
è€æ°è¡ã³ã¡ã³ã/* ~ */
ã¯ã/*
ãš*/
ã®éã«èšè¿°ãããŠããæååãã¹ãŠãã³ã¡ã³ããšããŠæ±ããŸãã
// 1è¡ã³ã¡ã³ãã®äŸ
/*
è€æ°è¡ã³ã¡ã³ãã®äŸ
è€æ°è¡ã³ã¡ã³ãã®äŸ
*/
äžéãã®èª¬æãçµãã£ãã®ã§ãããµã³ãã«ãâŠâŠãšè¡ããããšããã§ãããé¢æ°ã«ã€ããŠå°ãåŸåãã«ããŠããããšããããŸãã
äŸãšããŠå
¬åŒãµã³ãã«éã®X軞æ¹åã«å埩移åãã
ãèŠãŠã¿ãŸãããã
// åºæ¬çãªåããã€ããããšãã§ããã¹ã¯ãªããã®ãµã³ãã«ã³ãŒãé - X軞æ¹åã«å埩移åãã
const speed = 1.0;
const range = 2.0;
const direction = new Vector3(1.0, 0.0, 0.0).normalize();
$.onUpdate(deltaTime => {
if (!$.state.initialized) {
$.state.initialized = true;
$.state.pivot = $.getPosition();
$.state.time = 0.0;
}
$.state.time += deltaTime;
$.setPosition($.state.pivot.clone().add(direction.clone().multiplyScalar(Math.sin($.state.time * speed) * range).applyQuaternion($.getRotation())));
});
$.onUpdate(deltaTime => { ... });
ãšé¢æ°ã®ãããªãã®ãã¡ãœããã«æž¡ãããŠããŸããã
å®ã¯(åŒæ°) => {}
ã®åœ¢ã§å®çŸ©ããŠãããã®ã¯ç¡åé¢æ°ãšåŒã°ããŠãããã®ã§ãæ°å€ãæååãšåæ§ã«å€ãšããŠæ±ããŸãã
ãã®ç¡åé¢æ°ãå®æ°ãšããŠå®çŸ©ãããã®ãæ¬è³æã§ã¯é¢æ°ãšåŒãã§ããããã§ãã
ãµã³ãã«ã®ç¡åé¢æ°ã«ååãã€ãã次ã®ããã«æžãããšãã§ããŸãã
const onUpdateCallback = deltaTime => {
if (!$.state.initialized) {
$.state.initialized = true;
$.state.pivot = $.getPosition();
$.state.time = 0.0;
}
$.state.time += deltaTime;
$.setPosition($.state.pivot.clone().add(direction.clone().multiplyScalar(Math.sin($.state.time * speed) * range).applyQuaternion($.getRotation())));
}
$.onUpdate(onUpdateCallback);
ãšã¯ãããonUpdateCallback
ã¯ã¹ã¯ãªããå
ã§è€æ°ç®æã§åŒã³åºãããã§ã¯ãããŸããããååãä»ããã«ããŠããupdateã«ãŒãæ¯ã«åŒã³åºãããé¢æ°ã以äžã®æ
å ±éãæããããããé¢æ°ãããã»ã©é·ããªãã®ã§ååãä»ããã»ã©ã§ããªããšèããããšãã§ããŸãã
ã¡ãªã¿ã«ãç¡åé¢æ°ã®åŒæ°ã1ã€ã®å Žåã¯æ¬åŒ§ïŒ(
ãš)
ïŒãçç¥ã§ããŸãã
å¥ã®ãµã³ãã«ã€ã³ã¿ã©ã¯ããããšZ軞æ¹åã«å埩移åãã
ãèŠãŠã¿ãŸãããã
// åºæ¬çãªåããã€ããããšãã§ããã¹ã¯ãªããã®ãµã³ãã«ã³ãŒãé - ã€ã³ã¿ã©ã¯ããããšZ軞æ¹åã«å埩移åãã
const speed = 1.0;
const range = 2.0;
const direction = new Vector3(0.0, 0.0, 1.0).normalize();
$.onInteract(() => {
$.state.enabled = !$.state.enabled;
});
$.onUpdate(deltaTime => {
if (!$.state.initialized) {
$.state.initialized = true;
$.state.pivot = $.getPosition();
$.state.time = 0.0;
$.state.enabled = false;
}
if (!$.state.enabled) return;
$.state.time += deltaTime;
$.setPosition($.state.pivot.clone().add(direction.clone().multiplyScalar(Math.sin($.state.time * speed) * range).applyQuaternion($.getRotation())));
});
if (!$.state.enabled) return;
ã«ã€ããŠã®èª¬æããªãããŠããªãã£ãã®ã§ãããã€ãŸãã§è§£èª¬ããŸãã
ifæã¯äžã®åŠçã1æã®ã¿ã®ãšãã¯æ³¢æ¬åŒ§ïŒ{
ãš}
ïŒãçç¥ã§ããŸãã
ã€ãŸããå
ã®ã³ãŒãã¯çç¥ããªãã§æžãããšæ¬¡ã®èšè¿°ãšåãæå³ã«ãªããŸãã
if (!$.state.enabled) {
return;
}
ãã®æ¬åŒ§ãçç¥ãããã©ããã¯äººãå Žåã«ããããšãã£ãæãã§ãã äžæã«çç¥ããŠã³ãŒãå€æŽæã«ãã°ãèªçºããŠããŸãããããªãå šéšçç¥ããªããšããããšããããŸãããreturnããããããããããã®ãªãçç¥ããŠãè¯ãã®ã§ã¯ãšãã話ããããŸãã
return
ã¯åŒã³åºãããé¢æ°ã®åŠçããã®å ŽæãŸã§ã§çµäºããããã®ããŒã¯ãŒãã§ãã
return
ã«å°éããæç¹ã§é¢æ°ã®å®è¡ãçµããã®ã§ããã®åŸã®è¡ã«æžãããé¢æ°ã®åŠçã¯å®è¡ãããŸããã
å
ã®ãµã³ãã«ã®å Žåã ãšã!$.state.enabled
ãtrue
ïŒ$.state.enabled
ã¯false
ïŒãªããã®é¢æ°ã®åŠçãçµããããšãªããŸãã