Learning to Code

プログラミング勉強記録

【JavaScript】 計算と変数の宣言について 基本のルールまとめ

忘れそう&引っかかりそうなことをメモしていく。

演算子の使い方 文字列と文字列、文字列と数字を扱う場合

数字同士は単純に足し算をするが、
文字列同士に+を使うと文字列を連結することができる。

let sample = "my" + "name";
alert(sample); // ⇐myname

仮に文字列と数を+でつないだ場合は、どちらも文字列の扱いをされる。
下の例だと'1'が文字列で2は数値だが、結果は'12'(文字列)として出力される。

alert( '1' + 2 ); // ⇐"12"
alert( 2 + '1' ); // ⇐"21"

しかも!この文字列連結ルールは+にしか通用しない。
ー(マイナス)を使えば文字列を削除してくれるのかというとそうではなくて、
+以外を使うと値(operand、または被演算子というらしいですが)は強制的に数字にされる。
+の時とは逆の動きになるということ。
値が文字列と数値でー(マイナス)した場合、
NaN(Not a Number)という結果が返ってくる。

let foo = "20"
let bar = 40
bar - foo
20 // ⇐fooの値は文字の20だったのに数値の20が結果として返ってきている
foo + bar
"2040" // ⇐+を使った場合は文字列の「2040」
another = "lorem"
"lorem"
foo + another
"20lorem"
foo - another
NaN
・ "=="と"==="の違い

==は値だけを比較する。
===は値と変数の型(数か文字列か、オブジェクトかなど)も含めて比較する。

let strings = "100"
let numbers = 100

strings == numbers
true
strings === numbers
false

typeof strings
"string"
typeof numbers
"number"
・1行1動作 コードはシンプルに保つこと

あと大事な原則として、

1行1動作

というのがある。1行に色々な指示を詰め込むことも出来るが、
後で読み返すのが大変だから、簡単に縦読みできるように1行をシンプルすること。

変数も同じ変数名を何度も再利用するのではなくて、
必要なら新しい変数を宣言したほうがずっといい。
同じ名前を使いまわしていると値が何かわからなくなるので。

・変数の宣言 基本的にはletを使う

変数の宣言にはletを使う。定数はconstで宣言。
varも使えるが、古い文法とのこと。微妙に動作も違うらしい。

・定数の宣言 名前の付け方

定数は初めから決まっており絶対に変化しないものについては変数名を全て大文字で書く。
例えば誕生日とか、地名とかも多分そう?

対して、何らかの処理が終わってから分かるもの(例えば誕生日をもとに計算したユーザーの年齢とか)、
これについては通常通り、camelCaseで書く。

つまり、currentUserBirthdayのように、最初の1語を小文字で書いて、
後の語は最初の1文字を大文字にする。
attackFromMarsとか、theLordOfTheRingsとか、そういう感じ。