0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【学習記録】『スラスラ読める JavaScriptふりがなプログラミング』読書感想  4章編 (後半) 〜N予備校の復習を添えて〜

Last updated at Posted at 2020-03-25

【学習記録】『スラスラ読める JavaScriptふりがなプログラミング』読書感想  4章編(前半)(https://qiita.com/Molly95554907/items/fbadbec14c4b02c4ee3a ) の続き

・戻り値を返す関数
つまり、ただ処理を実行したり、引数を表示したりするのではなく、何か計算をしてその答えを返す関数。 戻り値=関数の答え
let 関数名 = () => {
//関数内で実行する文
return 結果の値;
};


関数名();
を実行すると、 

結果の値 

が出力される。

例)

let square = (number) =>{
return number * number;
};
console.log(square( 3 ));


9が出力される(戻り値)

・オブジェクトを用いて複数のデータを一つの変数にまとめる
重要項目。つまるところオブジェクトって何なんだろ………

オブジェクトを、複数のデータを記録する入れ物として使う。

変数 = { プロパティ1 : 値a, プロパティ2 : 値b }

オブジェクトからプロパティを取り出す際は、
「変数.プロパティ1」と書くと、値a が取り出せる。
変数['プロパティ1']と書いても、値a が取り出せる。

例)


let myfavoritebooks = { title:'1984', author: 'George Orwell', publicationYear: 1949, pages: 328}; 

console.log( myfavoritebooks.title );   //1984と出力(値が出る)
console.log( myfavoritebooks.pages );   //328と出力(値が出る)

※オブジェクトを表のタイトル、プロパティを表の項目、値を表の中身と思うと理解しやすい!!

・配列の中にオブジェクトを入れる
先ほどのオブジェクトは、 「好きな本」オブジェクトの中に{「タイトル」プロパティ、「著者」プロパティ、「出版年」プロパティ、「ページ数」プロパティ}が入っていた。

→好きな本を複数「好きな本」オブジェクトに入れるには…
オブジェクトを入れた配列を作る!


let myfavoritebooks = [
{ title:'1984', author: 'George Orwell', publicationYear: 1949, pages: 328},
{ title:'コンビニ人間', author: '村田沙耶香', publicationYear: 2016, pages: 160}
];

console.log( myfovoritebooks[0].author )  //George Orwell が出力
console.log( myfovoritebooks[1].title )   //コンビニ人間 が出力
【N予備校 三章「集計処理を行うプログラム」】
スクリーンショット 2020-03-24 0.35.02.png

ここでは、4つのプロパティ(集計年,都道府県名,10〜14歳の人口,15〜19歳の人口)を持つCSVのデータストリングを「,」で区切り、
columnsという変数の箱の中に、配列としてデータを格納していく。

CSVの最初のプロパティの値(columns[0])を整数化し、変数yearに代入する。
CSVの二つ目のプロパティの値(columns[1])を変数prefectureに代入する。
CSVの四つ目のプロパティの値(column[3])を整数化し、変数popuに代入する。

・関数を組み合わせる

「関数定義」、「データ」、「関数呼び出し」を組み合わせてプログラムを作る。
一つのファイルに書くとプログラムが長くなるので、複数のファイルに分割すると良い。

例)
『スラスラ読める JavaScriptふりがなプログラミング』P149のコードを利用


関数定義

//メールを作る関数
let createMail = (recv, bill) = >{
let mag = `${recv}様
PT企画の斎藤です。
今月の請求額は${bil}円です。`
console.log(msg)
};


引数を二つ持つ関数

//手数料を追加する関数
let addCharge = (bill) => {
return bill * 1.07;
};



返り値を持つ関数

<h6>データを貼り付ける</h6>
//送付先データ
let data = [
{name:'山本', bill:40000, crg:true } ,
{name:'吉田', bill:25000, crg:false }
];


配列の中にオブジェクトを入れるオブジェクトの中のプロパティは本文に貼り付けたい順に入れている

//メール作成実行
for(let rec of data){
let bill = rec['bill']
if(rec(['crg']){
bill = addCharge(bill);
}
createMail(rec['name'],bill);
}


data配列の中のオブジェクトをひとつづつ変数recに入れていく
変数recの中のbillプロパティを持った値を変数billとする
もし変数recの中のcrgプロパティーを持った値がtrueなら
変数billに関数addCharge(bill)の戻り値を代入する
createMail関数を実行する引数には変数recの中のnameプロパティを持った値と変数billをとる
疑問点
・疑問① javaScriptは関数が上から下に実行される性質を持つんだよね? なのに、プログラムの最初に登場するbillは、 プログラムの最後にlet billで定義されるってどういうことなんだろう。

・疑問②
関数内で作った変数は「ローカル変数」
関数外では呼び出せないんだよね?
なのに。for(let rec of data){}
の繰り返し文の中で作ったbill変数が、プログラムの最初の
let createMail = (recv, bill) =>{}
で呼び出されているのは何故だろう。

・関数の呼び出し

作った関数は、

module.export = {
関数名,
};

を使うと、同じフォルダ(ディレクトリ)の別ファイルからもこの関数が参照できるようになる。

【N予備校では、三章「秘密の掲示板作り」などで登場】
スクリーンショット 2020-03-22 12.12.39.png
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?