インスタンス
インスタンスという言葉と一緒に
・クラス
・オブジェクト
の二つも出てくる
それぞれの意味は
クラス・・・設計図
インスタンス・・・設計図から実際に作ったもの
オブジェクト・・・クラスとかインスタンスをふんわりさせたもの
インスタンス化=new演算子で「newする」とも言う
インスタンス化=実際にものをつくる
メソッド
メソッドとはプロパティに入っている関数の事である
var sumple {
プロパティ : 値,
プロパティ : 関数 ←これがメソッド
スコープとは
スコープとは、変数の名前や関数などを参照できる範囲のこと
JavaScriptでは、変数や関数などにアクセスできる範囲が決まっている
function fn() {
const x = 1;
// fn関数のスコープ内から`x`は参照できる
console.log(x); // => 1
}
fn();
// fn関数のスコープ外から`x`は参照できないためエラー
console.log(x); // => ReferenceError: x is not defined
仮引数も同じで関数の中では参照可能だが関数の外からは参照できない。
このスコープという言葉は
・グローバルスコープ
・ローカルスコープ
という形でよく見かける
これらの意味は
グローバルスコープは名前の通り最も外側にあるスコープである
だから「JavaScriptのどこからでもアクセスできて全部の範囲が有効」
グローバルスコープで定義した変数はグローバル変数と呼ばれる
ローカルスコープは更に2種類あり、「関数スコープ」「ブロックスコープ」と言うモノがある。
関数スコープ
関数スコープとは上にあげた物も関数スコープである。
let
やconst
は同じスコープ内に同じ名前の変数を二重に出来ないが、これは各スコープで同じ名前の変数は一つしか宣言できないからである。
let toaru;
let toaru;
//SyntaxErrorと表記される
だがスコープが異なれば同じ名前で変数を宣言できる
ブロックスコープ
ブロックスコープとは{~~~}で囲んだ範囲の事である
関数スコープと同じようにブロック内で宣言した変数はスコープ内でしか参照できない。
if文やwhile文でもブロックスコープを作るが、これも同じように外側からは参照することは出来ないのである。
≻https://jsprimer.net/basic/function-scope/
仮引数(別名パラメーター)
function 関数名(仮引数1, 仮引数2, ...){
実行される処理1;
実行される処理2;
...
return 戻り値;
}
仮引数には変数が入る
もし引数を指定せず関数が呼び出されたらundefined
がになるが、仮引数を設定しておけば、その値を代入してくれる。