#関数を定義する
Rubyでいうところのメゾットのことを、JavaScriptでは関数と呼びます。
**function 関数名( 引数 ){ 処理 }**と記述することで関数を定義することができます。
関数定義方法は主に以下の2種類です。
##(1)関数宣言
function 関数名(引数){
処理
}
定義例1
function animal(){
console.log("ライオン")
}
animal()
出力される値:ライオン
定義例2
function calc(num1,num2){
return num1*num2
}
const num1 = 10
const num2 = 4
console.log(calc(num1,num2))
出力される値:40
※ JavaScriptでは、返り値をreturnで定義する必要があります。
今回の場合、returnがなければ値が出力されません
##(2)関数式
変数 = function( 引数 ){
関数内の処理
}
##二つの変数の違いを理解する。
-
記述の違い
関数式の場合は、**function(){}**という無名の関数を定義・代入するという記述になる。
// 関数宣言
function 関数名( 引数 ){
// 関数内の処理
}
// 関数式
変数 = function( 引数 ){
// 関数内の処理
}
-
変数を読み込むタイミングの違い
関数宣言については、関数以前に定義しても読み込まれる。
//関数宣言
hello() ←変数定義
function hello(){
console.log('hello')
}
出力される値:hello
関数宣言の場合は、関数定義後に変数を記述しても読み込まれます。
//関数宣言
function hello(){
console.log('hello')
}
hello() ←変数定義
出力される値:hello
次は、関数式です。
//関数式
hello() ←変数定義
const hello = function(){
console.log('hello')
}
出力される値:Uncaught SyntaxError: Identifier 'hello' has already been declared
このように、関数式の場合は関数以前に変数を定義するとエラーになってしまいます。
関数式の場合は、関数式以降に変数を記述するようにしましょう。
//関数式
const hello = function(){
console.log('hello')
}
hello() ←変数定義
出力される値:hello
※ 現在プログラミング勉強中ですので、間違いがあれば教えていただけると幸いです。