一人で開発する時は気にしないのだけど、
チームで開発する時には名称が分からないと、
コードについて話す時に伝えたいことが伝わらなかったりで、
作業効率が落ちたりするので覚えた方が良いと思う。
あくまでコミュケーションをとるためなので、
ローカルルールで共通言語化されていれば覚えなくても良いと思う。
変数, 宣言, 代入, 定義
var x; // 変数 x を宣言する。
x = 2; // 変数 x に 2 を代入する。
var y = 'variable'; // 変数 y を宣言して 'variable' を定義する。
オブジェクト, プロパティ, メソッド
var obj = {}; // オブジェクトの定義。 {} で囲むのが一番簡単な方法。
var obj2 = {
// オブジェクトに定義された変数を「プロパティ」という。
x: 1,
// オブジェクトに定義された関数を「メソッド」という。
get: function() {
return x * 2;
},
};
console.log(obj2.x) // 1
console.log(obj2.get()) // 2
null・undefined
宣言はされたけど何も入ってないのが null (ヌル)
宣言、定義すらされてないのが undefined (アン・ディファインド)
var x;
console.log(x); // null
console.log(y); // undefined
無名関数
名前の無い関数のこと。
// 変数 test を宣言して無名関数を定義する。
var test = function() {
console.log('call')
};
test(); // 'call'
即時関数
関数を定義と同時に呼び出す構文を「即時関数」という。
グローバル汚染させないためによく使う。
// str という引数を持つ即時関数を定義する。
(function(str){
console.log('call ' + str);
})('success'); // 'call success'
// 変数 test を宣言して無名関数を即時関数で定義する。
var test = function() {
console.log('call');
}(); // 'call'
コールバック関数
引数に関数を持たせた関数。
コールバックは引数の最後尾に持たせるのが一般的。
// コールバック関数を定義する。
var test = function(x, callback) {
callback(x * 2);
};
// コールバック関数を呼び出す。
test(2, function(res) {
console.log(res); // 4
});
// 引数に何個も関数を持たせてもよい。
var test2 = function(x, success, error) {
if (x) {
success();
} else {
error();
}
};
test2(true, function() {
// success
},
function() {
// error
});
スコープ・クロージャー
コード上における変数や関数の有効範囲 (参照できる範囲) のことをスコープという。
javascript ではグローバル変数、関数のスコープは、プログラム全体 (どこでも参照できる) になる。
ローカル変数、関数 (関数内に定義された変数、関数) のスコープは、その変数が宣言された関数の中だけになる。
クロージャーというのはスコープ中にある変数にアクセスできる関数のことをいう。
javascript の関数は全てクロージャー。
// 変数 g を宣言して、 'this is global' を定義する
var g = 'this is global';
// 関数 test を定義する。
function test() {
var str = 'success';
(function() {
// javascript の関数は全てクロージャーなので、 str を参照できる。
console.log(str)
// g も参照できる。
console.log(g)
})()
}
console.log(str); // undefined になる。関数の中はスコープ外なので参照できない。
test() // 'success' 'this is global'
T
ドキュメントなどに突然出てくる T は「タイプ」という。つまり「型」。
String 型, Int 型, Boolean 型 などの、
なにかしらの型ということを表す。
イベント
javascript におけるイベントとは、
addEventListener() などに使われるイベントの事を指す場合が多い。
DOM (ドム)
Document Object Model のことをいう。
HTML や XML で書かれたコンテンツのこと。
プライベート・パブリック
関数を定義した時に、
関数内でしか扱えない変数、関数をプライベート変数、関数という。
関数の外からでも扱える変数、関数のことをパブリック変数、関数という。
function test() {
// プライベート変数
var str = 'success';
return {
// パブリック関数
get: function() {
return str;
}
};
}
var t = new test;
t.str; // プライベート変数なので参照できない。
t.get(); // パブリック関数なので呼び出せる。
prototype
プロトタイプという。
メモリの節約に使う。
prototype に定義したものは new する毎に毎回定義されることなく使用できるので、
一度にたくさん呼び出す必要がある関数に使うと効果的。
prototype は親クラスみたいなイメージ。
function sample1() {
this.test = 'success';
}
// 書き方 1
sample1.prototype.get = function() {
return this.test;
};
// 書き方 2
sample1.prototype = {
get: function() {
return this.test; // 'success'
},
// () => で定義すると this の参照先がおかしくなる
dont: () => {
return this.test; // undefined
},
};
// 使い方。
// s.prototype.get() と書かなくて良い。
var s = new sample1();
s.get() // 'success'