web関連

【javascript、php】アロー関数についてと関数の書き方の違い

2020/10/12

es6から関数を定義する時にアロー関数が使えるようになったのと、phpとjavascriptの関数の違いについて確認

関数と無名関数

アロー関数を語る前にjavascriptには通常の関数と無名関数というモノがある

function name(){
	console.log("関数です。");
}
name();// 関数です。

const noName = function(){
	console.log("無名関数です。");
}
noName();// 無名関数です。

無名関数で定数noNameに代入して使ってるけど、通常の関数を以下のようにして書く事も可能

const test = function name(){
	console.log("関数です。");
}
test();// 関数です。

見てもらえればわかるけどこれでも出力できて、関数名のnameっていらなくね?ってことで無名関数が一般的に使われてるみたい

今回使用する「アロー関数」は無名関数で使う

無名関数の利点としては「関数名を考える手間が省ける」とのこと

アロー関数を使った記述方法

従来の無名関数とアロー関数を使った書き方の違い

const es5 = function(){
	console.log("従来の無名関数です。");
}
es5();// 従来の無名関数です。

const es6 = () =>{
  console.log("アロー関数です。");
}
es6();// アロー関数です。

functionが省略されて、=>が追加されたのがアロー関数

アロー関数を使うとコードを短く書くことができる

return(戻り値)を省略することができる

const result = (num1, num2) => num1 + num2;
console.log(result(5,8));// 13
// OR
const result = (num1, num2) => console.log(num1 + num2);
result(5,8);// 13

引数が一つだけの時は()を省略できる

const result = name => console.log( name + "です。");
result("田中");// 田中です。

あとアロー関数を使うメリットとしてthisの定義がわかりやすくなるのかな?
あんまり深くやっても使わないからここまで
参考記事を貼っておくから興味ある人はそっち見て

無名関数の他に即時関数というのもある
長くなるから割愛

PHPとjavascriptの関数の違い

おまけ、javascriptとphpの関数の書き方

【通常の関数】

<?php 
function test($name){
	echo $name . "だよ。";
}
test("田中");// 田中だよ。
?>

<script>
function test(name){
	console.log(name + "だよ。");
}
test("田中");// 田中だよ。
</script>

【無名関数】

<?php 
$test = function ($name) {
	echo $name . "だよ。";
};
$test("田中");// 田中だよ。
?>

<script>
const test = function(name){
	console.log(name + "だよ。");
};
test("田中");// 田中だよ。
</script>

基本的な書き方としてはあまり変わらないね
気をつけるのは変数くらいかね

気を付けることとしては、PHPの無名関数の時は「{}(波括弧)」の終わりに「;(セミコロン)」つけないとエラーになるわ
変数に代入するわけだから必要か…
あ、javascriptもセミコロンをつけないとまだ続いているって解釈されちゃって後ろに書く文に影響が出るみたい「;(セミコロン)」は必須っすね

文字連結の書き方について

文字連結で、「.(コロン)」や「+演算子」を使わなくても繋げられるんだけど、その書き方も微妙に似てたから書き出し

<?php 
$name = "二色人";
echo "私の名前は{$name}です。";// 私の名前は二色人です。
?>

<script>
let txt2 = '二色人';
console.log(`私の名前は${txt2}です。`);// 私の名前は二色人です。
</script>

PHPは「””(ダブルクォーテーション)」で囲んで
javascriptは「“(バッククォート)」で囲む

普通に関数の書き方の違いだけ調べようと思ったらPHP7.4からjavascriptみたいにアロー関数が使えるようになったみたい(一応メモ)

phpとjavascriptって書き方似てるね
業界に入る前にバックエンドは一つ覚えちゃえば大体似たりよったりだから他の言語覚えやすいって誰か言ってたけどこういうことかね?
javascriptはフロントエンドだけど…