JavaScriptã§ã¯ã颿°ã¯ âéæ³ã®è¨èªæ§é â ã§ã¯ãªããç¹å¥ãªç¨®é¡ã®å¤ã§ãã
åã«ç§ãã¡ã使ã£ã¦ããæ§æã¯ 颿°å®£è¨ ã¨å¼ã°ãã¾ã:
function sayHi() {
alert( "Hello" );
}
ããã¨ã¯å¥ã«ã颿°å¼ ã¨å¼ã°ããã颿°ãä½ãããã®å¥ã®æ§æãããã¾ãã
ããã¯ãã®ããã«ãªãã¾ã:
let sayHi = function() {
alert( "Hello" );
};
ããã§ã¯ã颿°ã¯ä»ã®ä»»æã®å¤ã¨åãããã«æç¤ºçã«å¤æ°ã«ä»£å
¥ããã¦ãã¾ããã©ã®ããã«é¢æ°ãå®ç¾©ããã¦ããããã¯åã«å¤æ° sayHi ã«æ ¼ç´ãããå¤ã§ãã
ãããã®ã³ã¼ãä¾ã®æå³ã¯åãã§ã: â颿°ã使ãã夿° sayHi ã«ãããæ ¼ç´ãã¾ãâ
alert ã使ã£ã¦ãã®å¤ãåºåãããã¨ãã§ãã¾ã:
function sayHi() {
alert( "Hello" );
}
alert( sayHi ); // 颿°ã®ã³ã¼ãã表示ããã¾ã
sayHi ã®å¾ã«æ¬å¼§ããªãã®ã§ãæå¾ã®è¡ã¯é¢æ°ã¯å®è¡ãããªããã¨ã«æ³¨æãã¦ãã ããã颿°åã¸ã®è¨åããã®å®è¡ã¨ãªãããã°ã©ãã³ã°è¨èªãåå¨ãã¾ãããJavaScriptã¯ããã§ã¯ããã¾ããã
JavaScriptã§ã¯ã颿°ã¯å¤ã§ãããã®ããããããå¤ã¨ãã¦æ±ããã¨ãã§ãã¾ããä¸ã®ã³ã¼ãã¯ãã®æåå表ç¾ã表示ãã¾ã(ããã¯ã½ã¼ã¹ã³ã¼ãã§ã)ã
sayHi() ã®ããã«å¼ã¶ãã¨ãã§ããç¹ã§ããã¡ããããã¯ç¹å¥ãªå¤ã§ãã
ããããããã¯å¤ãªã®ã§ãä»ã®ã¿ã¤ãã®å¤ã®ããã«æ±ããã¨ãã§ãã¾ãã
颿°ãå¥ã®å¤æ°ã«ã³ãã¼ãããã¨ãã§ãã¾ã:
function sayHi() { // (1) 使
alert( "Hello" );
}
let func = sayHi; // (2) ã³ãã¼
func(); // Hello // (3) ã³ãã¼ã®å®è¡(åãã¾ã)!
sayHi(); // Hello // ãããã¾ã åãã¾ã(ãªãã§ãããï¼)
ä¸ã§èµ·ãã£ã¦ãããã¨ã®è©³ç´°ã¯æ¬¡ã®éãã§ã:
-
颿°å®£è¨
(1)ã§é¢æ°ãçæãã夿°åsayHiã«æ ¼ç´ãã¾ãã -
è¡
(2)ã§ããã夿°funcã«ã³ãã¼ãã¾ããæ¹ãã¦æ³¨æãã¦ãã ãã:
sayHiã®å¾ã«æ¬å¼§ã¯ããã¾ãããããæ¬å¼§ããã£ãå ´åãsayHiã® é¢æ°èªèº« ã§ã¯ãªããfunc = sayHi()ã¯sayHi()ã®å¼ã³åºãçµæãfuncã«æ¸ãè¾¼ã¿ã¾ãã -
ããã§ã颿°ã¯
sayHi()ã¨func()ã©ã¡ãã§ãå¼ã¶ãã¨ãã§ãã¾ãã
ã¾ãã1è¡ç®ã§ sayHi ã宣è¨ããã®ã«é¢æ°å¼ã使ããã¨ãã§ãã¾ã:
let sayHi = function() { ... };
let func = sayHi;
// ...
ãã¹ã¦åãããã«åä½ãã¾ããä½ãèµ·ãã£ã¦ããã®ãããæç½ã§ããã
çåãããããããã¾ããããªã颿°å¼ã¯æ«å°¾ã«ã»ãã³ãã³ ; ãæã¤ã®ããããã¦é¢æ°å®£è¨ã«ã¯ããããªãã®ã:
function sayHi() {
// ...
}
let sayHi = function() {
// ...
};
çãã¯ã·ã³ãã«ã§ã:
- ã³ã¼ããããã¯ã
if { ... },for { },function f { }ãªã©ã®æ§ææ§é ã®æ«å°¾ã«ã¯;ãå¿ è¦ããã¾ããã - 颿°å¼ã¯æã®å
å´ã§ä½¿ããã¾ã:
let sayHi = ...;ã®å¤ã¨ãã¦å©ç¨ãã¾ããããã¯ã³ã¼ããããã¯ã§ã¯ããã¾ãããã»ãã³ãã³;ã¯ã©ããªå¤ã§ããæã®æå¾ã«æ¨å¥¨ããã¦ãã¾ããå¾ã£ã¦ãããã®ã»ãã³ãã³ã¯é¢æ°å¼èªä½ã¨é¢ä¿ã¯ãªããåã«æã®çµããã§ãã
ã³ã¼ã«ããã¯é¢æ°
å¤ã¨ãã¦é¢æ°ã渡ãã颿°å¼ã使ãä¾ãã¿ã¦ã¿ã¾ãããã
ç§ãã¡ã¯ã3ã¤ã®ãã©ã¡ã¼ã¿ãæã¤é¢æ° ask(question, yes, no) ãæ¸ãã¾ã:
question- 質åå 容
yes- çãã âã¯ãâ ã®å ´åã«å®è¡ãã颿°
no- çãã âãããâ ã®å ´åã«å®è¡ãã颿°
颿°ã¯ question ãèããã¦ã¼ã¶ã®åçã«åããã¦ãyes() ã¾ã㯠no() ãå¼ã³ã¾ã:
function ask(question, yes, no) {
if (confirm(question)) yes()
else no();
}
function showOk() {
alert( "You agreed." );
}
function showCancel() {
alert( "You canceled the execution." );
}
// ä½¿ç¨æ³: 颿° showOk, showCancel 㯠ask ã®å¼æ°ã¨ãã¦æ¸¡ããã¾ã
ask("Do you agree?", showOk, showCancel);
ããããã£ã¨ç°¡åã«æ¸ãæ¹æ³ãæ¢ãåã«ããã©ã¦ã¶(ã¨å ´åã«ãã£ã¦ã¯ãµã¼ãå´)ã§ã¯ããã®ãããªé¢æ°ã¯é常ã«ä¸è¬çã§ãããã¨çæãã¾ããããå®éã®å®è£
ã¨ä¸ã®ä¾ã®ä¸»ãªéãã¯ãå®éã®é¢æ°ã¯åç´ãª confirm ããããããè¤éãªæ¹æ³ã§ã¦ã¼ã¶ã¨ããåãããããã¨ã§ãããã©ã¦ã¶ã§ã¯ãé常ãã®ãããªé¢æ°ã¯è¦æ ãã®ãã質åã¦ã£ã³ãã¦ãæç»ãã¾ããããããã¯ã¾ãå¥ã®è©±ã§ãã
askã®å¼æ°ã® showOk 㨠showCancel 㯠ã³ã¼ã«ããã¯é¢æ° ã¾ãã¯åã« ã³ã¼ã«ãã㯠ã¨å¼ã°ãã¾ãã
ãã®ã¢ã¤ãã¢ã¯ã渡ãã颿°ãå¿
è¦ã«å¿ãã¦å¾ãã âã³ã¼ã«ããã¯â ããããã¨ãæå¾
ããã¨ãããã®ã§ãããã®ã±ã¼ã¹ã§ã¯ãshowOK 㯠âã¯ãâ ã®ããã®ã³ã¼ã«ããã¯é¢æ°ã«ãªããshowCancel 㯠âãããâ ã®åçã®ããã®ã³ã¼ã«ããã¯é¢æ°ã§ãã
åã颿°ãããçãæ¸ãããã«é¢æ°å¼ã使ããã¨ãã§ãã¾ã:
function ask(question, yes, no) {
if (confirm(question)) yes()
else no();
}
ask(
"Do you agree?",
function() { alert("You agreed."); },
function() { alert("You canceled the execution."); }
);
ããã§ã¯ã颿°ã¯ ask(...) å¼ã³åºãã®ä¸ã§æ£ãã宣è¨ããã¦ãã¾ãããããã¯ååãæããªãã®ã§ ç¡å颿° ã¨å¼ã°ãã¾ãããã®ãããªé¢æ°ã¯ã夿°ã«å²ãå½ã¦ããã¦ããªããã ask ã®å¤å´ããã¯ã¢ã¯ã»ã¹ã§ãã¾ããããããã§ã¯ç§ãã¡ã«ã¨ã£ã¦ã¡ããã©ãããã®ã¨ãªã£ã¦ãã¾ãã
ãã®ãããªã³ã¼ãã¯ã¹ã¯ãªããã®ä¸ã§èªç¶ã«ç¾ãã¾ãããã㯠JavaScript ã®ç²¾ç¥ã«åºã¥ãã¦ãã¾ãã
æååãæ°å¤ã®ãããªé常ã®å¤ã¯ ãã¼ã¿ ãç¾ãã¾ãã
颿°ã¯ ã¢ã¯ã·ã§ã³ ã¨ãã¦èªèããã¾ãã
夿°éã§æ¸¡ããå¿ è¦ãªæã«å®è¡ããããã¨ãã§ãã¾ãã
颿°å¼ vs 颿°å®£è¨
颿°å®£è¨ã¨é¢æ°å¼ã®éããæç¢ºã«è¿°ã¹ã¦ã¿ã¾ãããã
ã¾ããæ§æã§ã:
-
颿°å®£è¨: ã¡ã¤ã³ã®ã³ã¼ãããã¼ã§å¥ã®æã¨ãã¦å®£è¨ããã颿°
// 颿°å®£è¨ function sum(a, b) { return a + b; } -
颿°å¼: å¼ã®å é¨ãã¾ãã¯å¥ã®æ§ææ§é ã®ä¸ã§ä½ããã颿°ãããã§ã¯ã颿°ã¯ âä»£å ¥å¼â
=ã®å³å´ã§ä½ããã¾ã:// 颿°å¼ let sum = function(a, b) { return a + b; };
ããããããªéãã¯ã颿°ãJavaScriptã¨ã³ã¸ã³ã«ãã£ã¦ ä½ãããã¨ã ã§ãã
颿°å¼ã¯ãå®è¡ãããã«å°éããæã«ä½ããããã以éã§å©ç¨å¯è½ã«ãªãã¾ãã
ä¸åº¦å®è¡ããã¼ã代å
¥ let sum = function⦠ã®å³è¾ºã¸æ¸¡ã£ãã â 颿°ã¯ä½ããããããã使ããããã«ãªãã¾ã(代å
¥ãå¼ã³åºããªã©)ã
颿°å®£è¨ã¯ç°ãªãã¾ã
颿°å®£è¨ã¯ã¹ã¯ãªãã/ã³ã¼ããããã¯å ¨ä½ã§ä½¿ç¨ã§ãã¾ãã
ã¤ã¾ããJavaScriptãã¹ã¯ãªããã¾ãã¯ã³ã¼ããããã¯ã®å®è¡ã®æºåãããæãæåã«ãã®ä¸ã®é¢æ°å®ç¾©ãæ¢ãã颿°ãçæãã¾ãããã㯠âåæå段éâ ã¨èãããã¨ãã§ãã¾ãã
ããã¦ããã¹ã¦ã®é¢æ°å®£è¨ãå¦çããããã¨ãå®è¡ãç¶ãããã¾ãã
çµæçã«ã颿°å®£è¨ã¨ãã¦å®£è¨ããã颿°ã¯ã颿°ãå®ç¾©ããã¦ããå ´æãããåã§å¼ã¶ãã¨ãã§ãã¾ãã
ä¾ãã°ãããã¯åä½ãã¾ã:
sayHi("John"); // Hello, John
function sayHi(name) {
alert( `Hello, ${name}` );
}
颿°å®£è¨ sayHi ã¯ãJavaScriptãã¹ã¯ãªããã®éå§ã®æºåããã¦ããã¨ãã«çæããããã®ä¸ã§ã©ãããã§ãè¦ãã¾ãã
â¦ãããããã颿°å¼ã ã£ãå ´åãåä½ããªãã§ããã:
sayHi("John"); // ã¨ã©ã¼!
let sayHi = function(name) { // (*) no magic any more
alert( `Hello, ${name}` );
};
颿°å¼ã¯ãå®è¡ãããã«å°éããæã«ä½ããã¾ããããã¯è¡ (*) ã§èµ·ããã¾ããé
ããã¾ãã
颿°å®£è¨ãã³ã¼ããããã¯ã®ä¸ã§ä½ãããã¨ãããã®ãããã¯ã®å å´ã§ããã°ã©ãããã§ãè¦ãã¾ãããããããã®å¤å´ããã¯è¦ãã¾ããã
å¿ è¦ã¨ããããããã¯ã®ä¸ã ãã§ãã¼ã«ã«å¤æ°ã宣è¨ãããã¨ã¯ãæã«ã¯ä¾¿å©ã§ãããããããã®æ©è½ãåé¡ãå¼ãèµ·ããå¯è½æ§ãããã¾ãã
ä¾ãã°ãã©ã³ã¿ã¤ã ã®ä¸ã§å¾ã age 夿°ã«ä¾åãã颿° welcome() ã宣è¨ããå¿
è¦ãããã¨ãã¾ããããããã¦ããã°ãããã¦ãã使ç¨ããäºå®ã ã¨ãã¾ãã
ä¸ã®ã³ã¼ãã¯ãã¾ãåä½ãã¾ãã:
let age = prompt("What is your age?", 18);
// æ¡ä»¶ä»ãã§é¢æ°ã宣è¨ãã
if (age < 18) {
function welcome() {
alert("Hello!");
}
} else {
function welcome() {
alert("Greetings!");
}
}
// ...å¾ã§ä½¿ã
welcome(); // ã¨ã©ã¼: welcome ã¯æªå®ç¾©ã§ã
ãªããªãã颿°å®£è¨ã¯ããããåå¨ããã³ã¼ããããã¯ã®å å´ã§ã®ã¿è¦ããããã§ãã
å¥ã®ä¾ã§ã:
let age = 16; // ä¾ã¨ãã¦16
if (age < 18) {
welcome(); // \ (å®è¡)
// |
function welcome() { // |
alert("Hello!"); // | 颿°å®£è¨ã¯ããã宣è¨ããããããã¯ã®ä¸ã§ããã°
} // | ã©ãã§ãå©ç¨å¯è½ã§ã
// |
welcome(); // / (å®è¡)
} else {
function welcome() { // age = 16 ã®å ´å, ãã® "welcome" ã¯æ±ºãã¦ä½ããã¾ãã
alert("Greetings!");
}
}
// ããã¯ãæ³¢æ¬å¼§ã®å¤ã§ã
// ãªã®ã§ãã®ä¸ã§ä½ããã颿°å®£è¨ã¯è¦ããã¨ãã§ãã¾ãã
welcome(); // ã¨ã©ã¼: welcome ã¯å®ç¾©ããã¦ãã¾ãã
if ã®å¤å´ã§ welcome ãè¦ããããã«ããããã«ã¯ã©ããããããã§ããããï¼
æ£ããã¢ããã¼ãã¯ã颿°å¼ã使ããwelcome ã if ã®å¤ã§å®£è¨ããé©åãªã¹ã³ã¼ãããã¤å¤æ°ã«ä»£å
¥ãããã¨ã§ãã
ããã¯ãæå³ããã¨ããã«åä½ãã¾ã:
let age = prompt("What is your age?", 18);
let welcome;
if (age < 18) {
welcome = function() {
alert("Hello!");
};
} else {
welcome = function() {
alert("Greetings!");
};
}
welcome(); // ok now
ãããã¯ãçå符æ¼ç®å ? ã使ããã¨ã§ããã«ã·ã³ãã«ã«ã§ãã¾ã:
let age = prompt("What is your age?", 18);
let welcome = (age < 18) ?
function() { alert("Hello!"); } :
function() { alert("Greetings!"); };
welcome(); // ok now
çµé¨åã¨ãã¦ã颿°ã宣è¨ããå¿ è¦ãããã¨ããæåã«èããã®ã¯é¢æ°å®£è¨æ§æã§ãã颿°ã宣è¨ãããåã«å¼ã¶ãã¨ãã§ãããããã³ã¼ããä½ç³»åããèªç±åº¦ãå¢ãã¾ãã
ã¾ããã³ã¼ãã®ä¸ã§ãlet f = function(â¦) {â¦} ããã function f(â¦) {â¦} ã®æ¹ã調ã¹ãã®ãå°ãç°¡åã§ãã颿°å®£è¨ã¯ãã âç®ãå¼ãã¾ãâã
â¦ãããã颿°å®£è¨ãå¹¾ã¤ãã®çç±ã§é©ãã¦ããªãå ´å(ä¸ã§ã¿ãä¾)ã颿°å¼ã使ç¨ããã¹ãã§ãã
ãµããª
- 颿°ã¯å¤ã§ãããããã¯ã³ã¼ãä¸ã®ã©ã®å ´æã§ããå²ãå½ã¦ãã³ãã¼ã宣è¨ããããã¨ãã§ãã¾ãã
- 颿°ãã¡ã¤ã³ã®ã³ã¼ãããã¼ã®ä¸ã§å¥ã®æã¨ãã¦å®£è¨ããã¦ãããããã㯠â颿°å®£è¨â ã¨å¼ã°ãã¾ãã
- 颿°ãå¼ã®ä¸é¨ã¨ãã¦ä½ããããããã㯠â颿°å¼â ã¨å¼ã°ãã¾ãã
- 颿°å®£è¨ã¯ãã³ã¼ããããã¯ãå®è¡ãããåã«å¦çããã¾ãããããã¯ã®ä¸ã§ã¯ã©ãããã§ãè¦ãã¾ãã
- 颿°å¼ã¯ãå®è¡ããã¼ãããã«å°éããæã«ä½ããã¾ãã
ããã¦ãã®ã±ã¼ã¹ã§ã¯ã颿°ã®å®£è¨ãå¿ è¦ãªå ´åã颿°å®£è¨ãæã¾ããã§ãããªããªããããèªèº«ã®å®£è¨ã®åã§ãå©ç¨ãããã¨ãã§ããããã§ããããã«ãããã³ã¼ãæ§æã®æè»æ§ãå¢ããé常ã¯èªã¿ããããªãã¾ãã
å¾ã£ã¦ã颿°å®£è¨ããã®ã¿ã¹ã¯ã«é©ããªãå ´åã«ã®ã¿é¢æ°å¼ã使ãã¹ãã§ãããã®ç« ã§ã¯ãã®ãããªä¾ãããã¤ãè¦ã¦ãã¾ããããä»å¾ãããã«å¤ãã®ä¾ãè¦ã¦ãããã¨ã«ãªãã§ãããã
ã³ã¡ã³ã
<code>ã¿ã°ã使ã£ã¦ãã ãããè¤æ°è¡ã®å ´åã¯<pre>ãã10è¡ãè¶ ããå ´åã«ã¯ãµã³ãããã¯ã¹ã使ã£ã¦ãã ãã(plnkr, JSBin, codepenâ¦)ã