UdemyでPythonを勉強した結果を残すブログ。

40歳でプログラミング始めて転職までいけるのかを実録してみます。

FreeCodeCampでjavascriptを勉強して簡単にまとめてみる。

一通りpythonの基礎はできてきたかなと思って求人を色々見ていると

関西とかでは実務なしのpythonエンジニアはかなり狭き門と感じたので、

フロントエンドもかじってみようとjavascriptも始めることに。

 

書き方はpythonと似たようなところがあるのでそんなに違和感なくできてる感じです。

とりあえず無料でもしっかり勉強できそうなところで

英語がメインではありますがfreeCodeCampで初歩からスタート。

https://www.freecodecamp.org/learn

 

 

とりあえず基礎をメモ的にまとめてみる。

変数定義

前はvarを使っていたがローカルにおいてもグローバルに使えてしまってややこしいので

今はletやconstを使う。

letは定義したものは変更できるけど、

constは基本的にはできない。(配列を定義した場合、配列内のデータは変えられる)

 

for文、while文、do while文

for文はほぼpythonにも似てる感じ。

let jsnum = 0;
for ( let i = 0; i < 10; i++) {
jsnum = i++;
}
console.log(jsnum);

 

pythonなら

pynum = 0
for i in range(10):
pynum += 1
print(pynum)


while文

js

let jsnum = 0;

while(jsnum < 10) {
jsnum += 1;
}
console.log(jsnum);

 

python

pynum = 0
while pynum < 10:
pynum += 1
print(pynum)

 

jsにはdo whileというwhileに入る前に1回whileの処理ができる構文がある

let jsnum = 0;

do {
jsnum += 1;
console.log(jsnum);
}
while(jsnum < 10);
console.log(jsnum);

 

再起関数

pythonではわからなかったけどjsで勉強してようやくわかった。

関数の中に自身の関数を入れてforを使わず回転させる。


function arrayLength(array) {
if(_.isEmpty(array)) { // isEmpty : 配列要素が空ならtrueを返す
return 0;
} else {
return 1 + arrayLength(_.rest(array)); // rest : 配列から先頭要素を除いた配列を返す
}
}
arrayLength(nums); // 5

複数のループもできる
function countdown(n) {
if (n < 1) {
return [];
} else {
const arr = countdown(n - 1);
arr.unshift(n);
return arr;
}
}
 
function rangeOfNumbers(startNum, endNum) {
if (endNum - startNum === 0) {
return [startNum];
} else {
const arr = rangeOfNumbers(startNum, endNum - 1);
arr.push(endNum);
return arr;
}
};

rangeOfNumbers(1,4); // [1,2,3,4]が出力される
 

 

 

if elseを使わず分岐ができる 構文

if/elseを使わずtrueかfalseで動作を分けたい場合は? a :b でできる
return a > b ? "a is true": "b is false";
条件は複数追加することも可能
function checkSign(num) {
return (num == 0) ? "zero" : (num > 0) ? "positive" : "negative";
}
checkSign(10);

 

 

時々出てきたこの構文よくわかってなかったけどこれで納得。

 

 

その他よく使うファンクション
.push()は配列を最後に追加
.pop()は配列の最後のデータをとる
.shift()は最初のデータをとる
.unshift()はデータを配列一番最初に追加する
a.concat(b) 配列a,bを結合する
const sumWithInitial = array1.reduce*1; // 19

 

 

freeCodeCampで無料でここまで勉強できるのはすごい!

英語もそんなに難しい英語じゃないのでやりやすいと思います。

 

次はES6まとめ。

 

 

 

*1:previousValue, currentValue) =>

previousValue + currentValue, initialVal);
// reduceは対象の配列を取得して、順番に計算する例えばarray1 = [3,4,5]の場合
// 今回は3 + 4 + 5=12を出力する、
// 別にデフォルト数値をinitialValの部分で決められる。なくても動く
const map1 = a.map(x => x + 1); // aが配列[1,3,4]だとしたら配列にある数値を全て取得して
// 例の場合それぞれ+1をする map1は[2,4,5]となる

Math.random()で0〜1の間の小数点でランダムに数字を出す 0,4984320493094とか
Math.floorは小数点をカットする

parseInt()はstringの数を整数に治す parseInt(n, 2)にすると二進法で変換される
function convertToInteger(str) {
return parseInt(str, 2);
}
console.log(convertToInteger("10011"