
JavaScriptã¯éçºè
ãæ··ä¹±ãããããäžè²«æ§ãäžå®å
šãªããã«çœç±ãããããããšããããŸãã JavaScriptã«ã¯ãæ··ä¹±ããããæ··ä¹±ããããããããšãããã€ããããŸãã ãããã®æãæåãªãã®ã¯
ãwithæŒç®å ã
æé»çãªã°ããŒãã«å€æ°ãããã³
æ¯èŒæŒç®ã«ãããå¥åŠãªåäœã§ãã
ãããããããã°ã©ãã³ã°ã®æŽå²ã®äžã§æãè«äºãèµ·ãã£ãã®ã¯JavaScriptãããã£ãŠçãäžãã£ãã æ¬ ç¹ïŒæ°ããECMAScript仿§ã§éšåçã«èª¬æãããŠããŸãïŒã«å ããŠãã»ãšãã©ã®ããã°ã©ããŒã¯æ¬¡ã®ç¹ã«äžæºãæããŠããŸãã
- å€ãã®äººãJavaScriptèšèªèªäœã«çžåœãããšèª€ã£ãŠèããŠããDOMã«ã¯ãéåžžã«å€±æããAPIããããŸãã
- CèšèªãšJavaèšèªããJavaScriptã«åãæ¿ãããšãæ§æã®trapã«é¥ããŸããæ§æã®trapã¯ãåœä»€åèšèªãšåãããã«ã¯é
眮ãããŸããã ããã¯éåžžã«é »ç¹ã«ãã°ã«ã€ãªãããéåžžã«è¿·æã§ãã
ãã®çµæãJavaScriptã®è©å€ã¯ããªãæªããªããŸããããããã¯äžè¬çã«ã¯ãµãããããªããã®ã§ãã ã»ãšãã©ã®å Žåãããã¯å€ãã®éçºè
ãJavaãŸãã¯C / C ++ã§ã®çµéšãJavaScriptã«ç§»è¡ããããã§ãã JavaãšJavaScriptã®ã¢ãããŒãã®éãã瀺ã3ã€ã®æãé£ããã±ãŒã¹ã以äžã«ç€ºããŸãã
ç¯å²
ã»ãšãã©ã®éçºè
ã¯ãå¿
èŠæ§ã®ããã«JavaScriptã«åãæ¿ããŸãã ãããŠãã»ãšãã©ãã¹ãŠã®äººã1ã€ã®ééããç¹°ãè¿ããŸã-圌ãã¯æåã«èšèªã®æ©èœãåŠã¶ããšãªãã³ãŒããæžãå§ããŸãã éåžžã«å€ãã®äººãå°ãªããšãäžåºŠã¯èŠçã®åé¡ãæ±ããŠããŸãã
JavaScriptæ§æã¯Cãã¡ããªã§äœ¿çšããããã®ãšéåžžã«äŒŒãŠããã颿°ã®æ§æèŠçŽ ïŒ
if
ããã³
for
äžæ¬åŒ§ã§åºåããŸãã ãããã£ãŠãå€ãã®éçºè
ã¯ããããã¯ã¬ãã«ã®ã¹ã³ãŒããåæ§ã®ååã§æŽçããããšãææ¡ããŠããŸãã æ®å¿µãªãããããã§ã¯ãããŸããã
ãŸãã倿°ã®ã¹ã³ãŒãã¯è§æ¬åŒ§ã§ã¯ãªã颿°ã«ãã£ãŠæ±ºå®ãããŸãã ã€ãŸããæ°ããã¹ã³ãŒããäœæãã
for
äœæããªã
if
ãå®éã«ã¯ããã®æ§ç¯ã§å®£èšããã倿°ã¯ãäžæãããŸãã ã€ãŸãã宣èšãããŠããæåã®é¢æ°ã®å
é ãã€ãŸãã°ããŒãã«ã¹ã³ãŒãã§äœæãããŸãã
第äºã«ã
with
ã¹ããŒãã¡ã³ãã®ååšã¯JavaScriptã®ã¹ã³ãŒããåçã«ããããã°ã©ã ãéå§ããåã«ãããæ±ºå®ããããšã¯ã§ããŸããã JavaScript
with
å®å
šã«äœ¿çš
with
ãªãã§ãã ãããJavaScriptã䜿çš
with
ãªããšãåå¥ã¹ã³ãŒãã䜿çšããèšèªã«ãªããŸãã ã€ãŸããã³ãŒããèªãã§ãã¹ãŠã®ã¹ã³ãŒããèªåã§çè§£ããã ãã§ååã§ãã
æ£åŒã«ã¯ãJavaScriptã«ã¯ã¹ã³ãŒãã«èå¥åãå«ãã4ã€ã®æ¹æ³ããããŸãã
- èšèªæšæºã«ãããšãããã©ã«ãã§ã¯ããã¹ãŠã®é åã«èå¥åthisãšåŒæ°ãå«ãŸããŸãã
- ä»®ãã©ã¡ãŒã¿ã«åºã¥ã ïŒä»®é¢æ°ãã©ã¡ãŒã¿ã®ç¯å²ã¯ã颿°ã®æ¬äœã«ãã£ãŠå¶éãããŸãã
- 颿°å®£èšã䜿çšããŸã ã
- 倿°ã宣èšããããšã«ããã
ãã ããçæããããšã1ã€ãããŸããvarã䜿çšããã«ïŒæé»ã®ïŒå€æ°ã宣èšãããšãã°ããŒãã«ã¹ã³ãŒãã®æé»çãªå®çŸ©ã«ãªããŸãã æç€ºçãªãã€ã³ããªãã§é¢æ°ãåŒã³åºãããå Žåã
this
ãã€ã³ã¿ãŒã«ãåãããšãåœãŠã¯ãŸããŸãã
詳现ã説æããåã«ãstrictã¢ãŒãïŒ
'use strict';
ïŒã
'use strict';
ããã¹ãŠã®å€æ°ãšé¢æ°ã®å®£èšãå颿°ã®å
é ã«é
眮ããããšããå§ãããŸãã
for
ãããã¯ãš
if
ãããã¯å
for
倿°ãšé¢æ°ã宣èšããªãã§ãã ããã
è²ãŠã
ãã®çšèªã¯ãåºåãå®éã«å®è£
ãããæ¹æ³ã®èª¬æãç°¡ç¥åããããã«äœ¿çšãããŸãã çºçãã倿°ã¯ãããããå«ã颿°ã®æåã§å®£èšããã
undefined
ãšããŠåæåãããŸãã å²ãåœãŠã¯ãã¢ããŠã³ã¹ãçºçããè¡ã§çŽæ¥å®è¡ãããŸãã
äŸãèããŠã¿ãŸãããïŒ
function myFunction() { console.log(i); var i = 0; console.log(i); if (true) { var i = 5; console.log(i); } console.log(i); }
ã©ã®ãããªå€ãç»é¢ã«è¡šç€ºããããšæããŸããïŒ
undefined 0 5 5
var
ã¹ããŒãã¡ã³ãã¯ã
if
ãããã¯å
ã§å€æ°
i
ããŒã«ã«ã³ããŒã宣èšããŸããã 代ããã«ã以åã«çºè¡šãããå
容ãäžæžãããŸãã æåã®
console.log
ã¹ããŒãã¡ã³ãã¯ãæªå®çŸ©ãšããŠåæåããã倿°
i
å®éã®å€ãåºåããããšã«æ³šæããŠãã ããã ãããŠãããªãã峿 Œã¢ãŒãã«å
¥ã£ããïŒ
峿 Œã¢ãŒãã§ã¯ã倿°ã䜿çšããåã«å®£èšãã
å¿
èŠããããŸãããJavaScriptãšã³ãžã³ã¯ãããå¿
èŠãšããŸããã ãšããã§ã
var
ãå宣èšããå¿
èŠã¯ãªãããšã«æ³šæããŠãã ããã ãã®ãããªãã°ããã£ããããå¿
èŠãããå Žåã¯ã
JSHintã
JSLintãªã©ã®ããŒã«ã䜿çšããŠ
ãã ãã ã
ãšã©ãŒã«ã€ãªããå¯èœæ§ã®ãã倿°ã宣èšããå¥ã®æ¹æ³ã瀺ãäŸãèŠãŠã¿ãŸãããã
var notNull = 1; function test() { if (!notNull) { console.log("Null-ish, so far", notNull); for(var notNull = 10; notNull <= 0; notNull++){
ãã®äŸã§ã¯ã
notNull
倿°ã®ããŒã«ã«ã³ããŒã
test()
颿°å
notNull
宣èšããã
äžããããŠããããã
if
ãããã¯ãå®è¡ãããŸãã ããã§ã¯ãåãã£ã¹ãæäœã圹å²ãæãããŸãã
颿°åŒãšé¢æ°å®£èš
åŒãäžãã¯ã倿°ã ãã§ãªããå®éã«å€æ°ã§ãã颿°åŒãããã³é¢æ°å®£èšã«ãé©çšã§ããŸãã ããã§ã¯ããã®æ©èœã«ã€ããŠç°¡åã«èª¬æããŸãã èŠããã«ã颿°å®£èšã¯äžè¬ã«é¢æ°åŒãšããŠåäœããŸããã宣èšã¯ã¹ã³ãŒãã®å
é ã«é
眮ãããŸãã
次ã«é¢æ°å®£èšã®äŸã瀺ããŸãã
function foo() {
次ã«ã颿°åŒã®äŸãšæ¯èŒããŸãã
function foo() {
åé¡ã®ããæ·±ãçè§£ã«ã€ããŠã¯ãæçš¿ã®æåŸã«ç€ºãããŠããåºçç©ãåç
§ããŠãã ããã
ãš
ãã®äŸã¯ãå®è¡æã«ã®ã¿ã¹ã³ãŒããæ±ºå®ã§ããç¶æ³ãåæ ããŠããŸãã
function foo(y) { var x = 123; with(y) { return x; } }
y
ã«ãã£ãŒã«ã
x
ãããå Žåã颿°
foo()
ã¯
yx
ãè¿ããããã§ãªãå Žåã¯
123
ãè¿ããŸãã ãã®æ¹æ³ã§ã¯ã©ã³ã¿ã€ã ãšã©ãŒãçºçããå¯èœæ§ãããããã
with
ã¹ããŒãã¡ã³ãã®äœ¿çšãé¿ããããšããå§ãããŸãã
æªæ¥ãèŠæ®ããïŒECMAScript 6
ECMAScript 6仿§ã§ã¯ããããã¯ã¬ãã«ã®å¯èŠæ§ãå®çŸ©ãã5çªç®ã®æ¹æ³ã§ãã
let
ã¹ããŒãã¡ã³ããæå¹ã«ãªããŸãã
function myFunction() { console.log(i); var i = 0; console.log(i); if (false) { let i = 5; console.log(i); } console.log(i); }
ECMAScript 6ã§ã¯ãletã䜿çšããŠ
if
å
ã§
i
ã宣èšãããšã
if
ãããã¯ã«æ°ããããŒã«ã«å€æ°ãäœæãããŸãã éæšæºã®ä»£æ¿ãšããŠã
let
ãããã¯ã宣èšã§ããŸãïŒ
var i = 6; let (i = 0, j = 2) { }
ãã®äŸã§ã¯ã倿°
i
ãš
j
ã¯ãããã¯å
ã«ã®ã¿ååšããŸãã å·çæç¹ã§ã¯ãChromeã¯
let
ã®äœ¿çšã®ã¿ã
ãµããŒãããŠããŸãã
ä»ã®èšèªã§
以äžã¯ãç°ãªãèšèªã§ã®ã¹ã³ãŒãã®å®è£
ã®æ©èœã®æ¯èŒè¡šã§ãã
ç©ä»¶ | Java | Python | Javascript | ãæ³šæ |
---|
ç¯å² | åå¥ïŒãããã¯ïŒ | ã¬ãã·ã«ã«ïŒé¢æ°ãã¯ã©ã¹ããŸãã¯ã¢ãžã¥ãŒã«ïŒ | ã¯ã | JavaãCã®ããã«ã¯ãŸã£ããæ©èœããŸããã |
---|
ãããã¯ã¹ã³ãŒã | ã¯ã | ãã | let ïŒES6ïŒãšçµã¿åãã㊠| Javaã®ããã«ã¯ãŸã£ããæ©èœããŸããã |
---|
è²ãŠã | ãã | ãã | ã¯ã | 倿°ã颿°ãããã³é¢æ°åŒã宣èšããããã |
---|
æ©èœ
颿°ã¯JavaScriptã®å¥ã®é害ã§ããããŸãã ãã®çç±ã¯ãJavaã®ãããªåœä»€åèšèªã¯ãŸã£ããç°ãªãæŠå¿µã䜿çšããŠããããã§ãã JavaScriptã¯é¢æ°åããã°ã©ãã³ã°èšèªãæããŸãã 確ãã«ãããã¯çŽç²ã«æ©èœçã§ã¯ãããŸããããããã§ãåœä»€åãæç¢ºã«ãã¬ãŒã¹ãããŠãããå¯å€æ§ãæšå¥šãããŠããŸãã ãã ããJavaScriptã¯é¢æ°åŒã³åºãã«å€éšãã圱é¿ãäžããããšãªãã颿°åèšèªãšããŠã®ã¿äœ¿çšã§ããŸãã
JavaScriptã§ã¯ã颿°ã¯
String
ã
Number
ãªã©ã®ä»ã®ããŒã¿åãšåæ§ã«åŠçã§ããŸãã ãããã¯å€æ°ãšé
åã«ä¿åãããåŒæ°ãšããŠä»ã®é¢æ°ã«æž¡ãããä»ã®é¢æ°ã«ãã£ãŠè¿ãããŸãã ããããã£ãæã€ããšãã§ããåçã«å€æŽããããšãã§ããŸããããã¯ãã¹ãŠãªããžã§ã¯ãã®ãããã§ãã
å€ãã®JavaScriptåå¿è
ã«ãšã£ãŠé©ãã¹ãããšã¯ãããã§ã®é¢æ°ããªããžã§ã¯ãã§ããããšã§ãã
Function
ã³ã³ã¹ãã©ã¯ã¿ãŒã¯
Function
ãªããžã§ã¯ããäœæããŸãã
var func = new Function(['a', 'b', 'c'], '');
ããã¯ã»ãšãã©åãã§ãïŒ
function func(a, b, c) { }
ã»ãšãã©-ã³ã³ã¹ãã©ã¯ã¿ãŒã®äœ¿çšã¯å¹çãæªãããã§ãã ç¡å颿°ãçæãããã®ã³ã³ããã¹ãã®ã¯ããŒãžã£ãŒãäœæããŸããã
Function
ãªããžã§ã¯ãã¯åžžã«ã°ããŒãã«ã¹ã³ãŒãã§äœæãããŸãã
Function
äžçš®ã§ãã
Function
ã
Object
åºã¥ããŠããŸãã 宣èšãã颿°ãè§£æãããšããããã¯ã£ãããšããããŸãã
function test() {}
ããã¯ã颿°ã«ããããã£ãããããšãæå³ããŸãã ãããã®ããã€ãã¯ãäœææã«å²ãåœãŠãããŸãã ããšãã°ã
name
ãŸãã¯
length
ã¯ããããã颿°å®çŸ©ã®åŒæ°ã®ååãšæ°ãè¿ããŸãã
function func(a, b, c) { }
ä»»æã®é¢æ°ãèšå®ããä»ã®ããããã£ãèªç±ã«èšå®ã§ããŸãïŒ
function test() { console.log(test.custom); } test.custom = 123;
ä»ã®èšèªã§
ç°ãªãèšèªã§ã®é¢æ°å®è£
ã®æ¯èŒè¡šïŒ
ç©ä»¶ | Java | Python | Javascript | ãæ³šæ |
---|
çµã¿èŸŒã¿åãšããŠã®æ©èœ | ã©ã ããJava 8 | ã¯ã | ã¯ã | |
---|
ã³ãŒã«ããã¯/ããŒã ãã³ãã¬ãŒã | ãªããžã§ã¯ãïŒãŸãã¯Java 8ã®ã©ã ãïŒ | ã¯ã | ã¯ã | 颿°ïŒã³ãŒã«ããã¯ïŒ |
---|
åçäœæ | ãã | ãã | eval ïŒ Function ãªããžã§ã¯ãïŒ | eval ã¯ã»ãã¥ãªãã£äžã®æžå¿µãåŒãèµ·ãããŸã; Function ãªããžã§ã¯ãã¯äºæããå®è¡ã§ããŸã |
---|
ãããã㣠| ãã | ãã | ããããã£ãããå ŽåããããŸã | 颿°ããããã£ãžã®ã¢ã¯ã»ã¹ãå¶éã§ããŸã |
---|
ç絡
JavaScriptã¯ãã¯ããŒãžã£ãŒãå°å
¥ããæåã®äž»èŠãªããã°ã©ãã³ã°èšèªã§ãã ãããããåç¥ã®ããã«ãJavaãšPythonã«ã¯ã¯ããŒãžã£ãŒã®åçŽåãããããŒãžã§ã³ããããŸãããããã¯å€åŽã®ã¹ã³ãŒãããäžéšã®å€ããèªã¿åãããšãã§ããŸããã§ããã Javaã§ã¯ãå¿åã®ãã¹ããããã¯ã©ã¹ã¯ã¯ããŒãžã£ãŒã«äŒŒãæ©èœãæäŸããŸãïŒããã€ãã®å¶éããããŸãïŒã ããšãã°ãã¹ã³ãŒãã§ã¯ãæçµçãªããŒã«ã«å€æ°ã®ã¿ã䜿çšã§ããŸãã ããæ£ç¢ºã«ã¯ããããã®å€ãèªã¿åãããšãã§ããŸãã
JavaScriptã¯ãå€éšå€æ°ãšå€éšã¹ã³ãŒã颿°ãžã®å®å
šãªã¢ã¯ã»ã¹æš©ãæã£ãŠããŸãã ããŒã«ã«å®çŸ©ã䜿çšããŠãèªã¿åããæžã蟌ã¿ãå¿
èŠã«å¿ããŠé衚瀺ã«ããããšãã§ããŸãã ãã®äŸã¯ãæåã®ç« ã§ç¹°ãè¿ãæç€ºãããŠããŸãã
ããã«è峿·±ãã®ã¯ãã¯ããŒãžã£ãŒã§äœæããã颿°ãããããäœæãããç°å¢ããèšæ¶ãããŠããããšã§ãã ã¯ããŒãžã£ãŒãšé¢æ°ã®ãã¹ããçµã¿åãããŠãå€éšé¢æ°ãå®è¡ããã«å
éšé¢æ°ãè¿ãããã«ããããšãã§ããŸãã ããã«ãå€éšé¢æ°ã®ããŒã«ã«å€æ°ã¯ãæåŸã«å®£èšããã倿°ã®å®è¡åŸãé·æéãå
éšé¢æ°ã®ã¯ããŒãžã£ãŒã«ä¿åã§ããŸãã ããã¯éåžžã«åŒ·åãªããŒã«ã§ãããæ¬ ç¹ã1ã€ãããŸããJavaScriptã¢ããªã±ãŒã·ã§ã³ã®äžè¬çãªã¡ã¢ãªãªãŒã¯ã®åé¡ã§ãã
äžèšã®çè§£ãæ·±ããããã«ãããã€ãã®äŸãèŠãŠã¿ãŸãããã
function makeCounter () { var i = 0; return function displayCounter () { console.log(++i); }; } var counter = makeCounter();
makeCounter()
颿°ã¯ã芪ç°å¢ãšã®éä¿¡ãç¶æããå¥ã®é¢æ°ãäœæããŠè¿ããŸãã
makeCounter()
å®è¡ã¯å€æ°counterã®å²ãåœãŠã§çµäºããŸããããããŒã«ã«å€æ°iã¯
displayCounter
ã®ã¯ããŒãžã£ãŒã«æ ŒçŽãããŠããããã®å
éšã§ã¢ã¯ã»ã¹ã§ããŸãã
makeCounter()
å床å®è¡ãããšãç°ãªãåæå€
i
æ°ããã¯ããŒãžã£ãŒãäœæãããŸãã
var counterBis = makeCounter();
makeCounter()
ãåŒæ°ãåãå
¥ããããã«ããããšãã§ããŸãïŒ
function makeCounter(i) { return function displayCounter () { console.log(++i); }; } var counter = makeCounter(10);
å€éšé¢æ°ã®åŒæ°ãã¯ããŒãžã£ãŒã«ä¿åããããããããŒã«ã«å€æ°ã宣èšããå¿
èŠã¯ãããŸããã
makeCounter()
ãåŒã³åºããã
makeCounter()
ãç§ãã¡ãèšå®ããåæå€ãèšæ¶ããããããã
makeCounter()
ãååŸãããŸãã
ã¯ããŒãžã£ã¯ãåå空éãã¢ãžã¥ãŒã«ããã©ã€ããŒã倿°ãã¡ã¢åãªã©ãJavaScriptã®å€ãã®åºæ¬çãªãã®ã«ãšã£ãŠéåžžã«éèŠã§ãã ããšãã°ãããã¯ãªããžã§ã¯ãã®ãã©ã€ããŒã倿°ãã¢ãã«åããæ¹æ³ã§ãã
function Person(name) { return { setName: function(newName) { if (typeof newName === 'string' && newName.length > 0) { name = newName; } else { throw new TypeError("Not a valid name"); } }, getName: function () { return name; } }; } var p = Person("Marcello");
ãã®ããã«ããŠãç¬èªã®ã»ãã¿ãŒãšã²ãã¿ãŒã䜿çšããŠããããã£åã®ã©ãããŒãäœæã§ããŸãã ES 5ã§ã¯ãããããã£ã®ã»ãã¿ãŒ/ã²ãã¿ãŒã䜿çšããŠãªããžã§ã¯ããäœæãããããã®ããããã£ãžã®ã¢ã¯ã»ã¹ã埮調æŽã§ãããããããã¯ã¯ããã«ç°¡åã«ãªããŸããã
ä»ã®èšèªã§
ç°ãªãèšèªã§ã®ã¯ããŒãžã£ãŒå®è£
ã®æ¯èŒè¡šïŒ
ç©ä»¶ | Java | Python | Javascript | ãæ³šæ |
---|
ç絡 | å¿åã®ãã¹ããããã¯ã©ã¹ã§ã¯ç¡å¹ãèªã¿åãå°çš | ãã¹ããããå®çŸ©ã§ç¡å¹ãèªã¿åãå°çš | ã¯ã | ã¡ã¢ãªãªãŒã¯ |
---|
ã¡ã¢åãã³ãã¬ãŒã | å
±æãªããžã§ã¯ãã䜿çšããå¿
èŠããããŸã | ãããããªã¹ããŸãã¯èŸæžã䜿çšãã | ã¯ã | ããè¯ã䜿çšé
å»¶ã³ã³ãã¥ãŒãã£ã³ã° |
---|
åå空é/ã¢ãžã¥ãŒã«ãã³ãã¬ãŒã | å¿
èŠãªã | å¿
èŠãªã | ã¯ã | |
---|
ãã©ã€ããŒã屿§ãã³ãã¬ãŒã | å¿
èŠãªã | äžå¯èœ | ã¯ã | 誀解ãæãå¯èœæ§ããããŸã |
---|
ãããã«
ãã®ããããã®èšäºã§ã¯ã以åã«ä»ã®ããã°ã©ãã³ã°èšèªãç¹ã«JavaãšCã§åããŠããéçºè
ã«ãšã£ãŠæ··ä¹±ãæãããšãå€ãJavaScriptã®3ã€ã®æ©èœã«ã€ããŠèª¬æããŸãã
â¢
JavaScriptã®ã¹ã³ãŒãâ¢
颿°å®£èšãšé¢æ°åŒâ¢
letã¹ããŒãã¡ã³ããšletãããã¯