freecodecampで草を生やす - javascript編
freecodecampを地味に続けており、改めて教科書的な内容なのだが、メモが溜まってきたので一旦書いておく。いずれも脈絡はない。主にへええと思った部分を書いただけ。
変数
JavaScriptの変数は、宣言された時点では初期値が未定義になっています。未定義の変数に対して数学的な演算を行うと、結果は「Not a Number」を意味するNaNになります。未定義の変数に文字列を連結すると、リテラルで未定義の文字列が生成されます。
MYVAR
はMyVar
やmyvar
と同じではありません。同じ名前で異なる大文字小文字のばあいに、複数の異なる変数を持つことが可能です。分かりやすくするために、この言語機能は使わないことを強くお勧めします。
Best Practice
JavaScriptの変数名はキャメルケースで書きましょう。キャメルケースでは、複数の単語からなる変数名は、最初の単語を小文字にし、後続の各単語の最初の文字を大文字にします。
myVar = myVar / 5;
myVarを5で割ることになります。これは次のように書き換えることができます。
myVar /= 5;
==
と ===
比較される値の型が異なる場合、それらは不等式とみなされ、厳密な等式演算子はfalseを返します。
例)
3 === 3
3 === '3'
これらの条件は、それぞれtrueとfalseを返します。
2番目の例では、3はNumber型、'3'はString型です。
inとhasOwnProperty
再帰
ES6
アロー関数
const greeting = (name = "Anonymous") => "Hello " + name;
console.log(greeting("John"));
console.log(greeting());
コンソールにはHello JohnとHello Anonymousという文字列が表示されます。
デフォルトのパラメータは、引数が指定されていない(未定義である)場合に起動します。上の例のように、パラメータ名に値を指定しなかった場合、Anonymousのデフォルト値を受け取ります。必要な数のパラメータにデフォルト値を追加することができます。
const arr1 = ['JAN', 'FEB', 'MAR', 'APR', 'MAY'];
let arr2
arr2 = [...arr1];
console.log(arr2);
結果:
(5) ["JAN", "FEB", "MAR", "APR", "MAY"]
0: "JAN"
1: "FEB"
2: "MAR"
3: "APR"
4: "MAY"
length: 5
export default function(x, y) {
return x + y;
}
export default は、モジュールやファイルの予備の値を宣言するために使われるので、各モジュールやファイルでデフォルトの export にできる値は 1 つだけです。さらに、export defaultはvar、let、constと一緒に使うことはできません。
Discussion