JavaScriptの学習(触りだけ)
rubyの学習と並行して、JavaScriptを触ってみました。
あっ、ここrubyと一緒じゃんってところも幾つかあって、学習は捗ったと思います。rubyでの記述と比較しながら、学習した事をつらつらと書いてみようかと。
記述はテキストエディタではなく、直接記述して結果が見れるデベロッパーツール使いました。ツールの場所ですが、ブラウザでF12押すとページのHTMLとかが書かれた検証ツールっていうのが出てきます。HTMLの上に表示窓があって、現在「Elements」になってます。
その隣の「Console」をクリックすると出てきます。ターミナルみたいな画面ですね。rubyの学習ではターミナルでirb起動させて色々やってましたが、Javaはこっちで色々やると思います。
・console.log()
カッコの中にテキストを入れてエンターを押すと、次の行にテキストが出力されます。rubyでいうputs です。
・const/ let/ var
const 変数名 = 変数に入れる値
let 変数名 = 変数に入れる値
var 変数名 = 変数に入れる値
という感じで、変数定義ができます。rubyでは変数名 = 変数に入れる値でしたが、Javaは3種類あるんですね。constは再定義および再代入しようとするとエラーになります。1度定義したらずっとそのままな変数というわけですね。
letは再定義のみエラーになります。再代入は可能なので、値は変わる可能性があります。
varは再定義も再代入も可能です。一見使い勝手良さそうですが、どういう類の変数なのかが見た目で分かりづらいので、開発ではほとんど使われないそうです。制約ある方がかえってスムーズに開発できるって考え方はruby on railsに似てますね。
rubyでいう「文字列#{変数}文字列」みたいなこともできます。
Javaの場合は
「"文字列" + 変数 + "文字列"」
もしくは
「`文字列 ${変数}文字列`」
下の例の「`」はバッククォートっていうrubyではあんまり馴染みのない記号です。シフトキー押しながら@マーク押すと出てきます。こっちの方がメジャーな記述方法だそうです。ちなみにテンプレートリテラルって言います。
・if
rubyでもお馴染みの条件分岐です。
if (条件式) {
trueの時どうするか
} else if (条件式がfalseの時の条件式) {
trueの時どうするか
} else {
falseの時どうするか
}
rubyとは同じようでいて微妙に違います。条件式にカッコついてるし。elsifじゃなくてelse ifだし。あと書き方がなんとなくCSSっぽい。もしくはエクスペクテーションか。あ、でも演算子(+ - * / % == != || &&とか)はrubyと全く一緒です。
・配列
変数名 = [値1, 値2, 値3, ....]
というように、こちらもrubyと変わりません。0から始まる添字を利用して値を指定できるのも一緒です。
・for文
繰り返し処理にはJavaではこのfor文を使います。
for (最初の値; いつまで繰り返すの?; 繰り返すと値は変化するの?) {
何を繰り返すの?
}
rubyでは、
いつまで繰り返すの? times do |繰り返すと1ずつ上がる変数|
何を繰り返すの?
end
だったから、かなり違う印象です。なんとなくヘルパーメソッド見たいな書き方。eachメソッドのJavaバージョンとも言えるforEach関数なんてのもあります。