はじめに
新しい言語を学習していく中で、今まで学習した各言語の文法を比較整理したくなり記事にします。
初学者のため、比較している内容も基礎的な内容になります。
間違いがあればご指摘いただけると幸いです。
文字列の出力
puts 'Hello World'
console.log('Hello World');
変数、定数
- 変数
データ(数値、文字列など)を入れておく箱のようなもの。 - 定数
変数同様にデータを入れておく箱のようなものですが、一度値が設定されると、その値を変更することはできません(変更しようとするとエラーになるか、警告が出ます)。
Rubyの定数は調べていて初めて知りました。
Ruby の定数は、アルファベットの大文字で始まる決まりです。
2 文字目以降は小文字でもOKのようですが、慣例ではすべて大文字とのこと。
number = 10 #変数
PI = 3.14 #定数
var number = 10; //変数
let number = 10; //変数
const number = 10; //定数
- var
原則使用しない - let
値が変わる(予定がある)変数を定義する際に使用 - const
値が変わらない変数を定義する際に使用
再代入 | 再宣言 | |
---|---|---|
var | ○ | ○ |
let | ○ | × |
const | × | × |
- 宣言
変数という箱を用意すること - 代入
箱に値を入れること - 再宣言
前の値が入った箱ごと捨てて新しい箱を用意する - 再代入
箱の中の値を入れ直す
文字列の中で変数を使用するとき(式展開)
name = "太郎"
puts "私の名前は#{name}です。"
Rubyでは、ダブルクオート(")で囲まれた文字列の中で#{変数名}を使用して変数の値を埋め込むことができます。シングルクオート(')では式展開は行われません。
const name = "太郎";
console.log(`私の名前は${name}です。`);
JavaScriptではバッククオート( )で囲まれたテンプレートリテラルの中で${変数名}`を使用して変数の値を埋め込むことができます。
if
書き方
if 条件式1
# 条件式1がtrueのときの処理
elsif 条件式2
# 条件式1がfalseで条件式2がtrueのときの処理
else
# 条件式1も条件式2もfalseのときの処理
end
if (条件式1) {
// 条件式1がtrueのときの処理
} else if (条件式2) {
// 条件式1がfalseで条件式2がtrueのときの処理
} else {
// 条件式1も条件式2もfalseのときの処理
}
例
# 変数の宣言
number = 5
# 条件分岐
if number > 7
puts "大きい"
elsif number < 3
puts "小さい"
else
puts "中間"
end
// 変数の宣言
const number = 5;
// 条件分岐
if (number > 7) {
console.log("大きい");
} else if (number < 3) {
console.log("小さい");
} else {
console.log("中間");
}
繰り返し処理(each)
書き方
配列.each do |変数|
# 各要素に対する処理
end
配列.forEach(function(変数) {
// 各要素に対する処理
});
例
# 配列の宣言
numbers = [1, 2, 3]
# eachメソッドで繰り返し処理
numbers.each do |num|
puts num
end
// 配列の宣言
const numbers = [1, 2, 3];
// forEachメソッドで繰り返し処理
numbers.forEach(function(num) {
console.log(num);
});
配列の各要素に対して繰り返し処理を行います。この例では配列の各要素(1, 2, 3)を出力します。
RubyのメソッドとJavaScriptの関数
書き方
def メソッド名(引数)
# 処理
end
function 関数名(引数) {
// 処理
}
例
def say_hello
puts "こんにちは!"
end
say_hello # "こんにちは!"と出力される
function sayHello() {
console.log("こんにちは!");
}
sayHello(); // "こんにちは!"と出力される
コメントアウト
# コメント
=begin
複数行を
コメントアウトします
=end
__END__
以降を全てコメントアウトします
// 一行をコメントアウトします
/*
複数行を
コメントアウトします
*/
シングルクオートとダブルクオートとバッククオート
Rubyにおけるシングルクオートとダブルクオート
Rubyではシングルクオートとダブルクオートを使用します。
調べた感じでは、ダブルクオートのほうが制約が少なく使いやすそうです。
例えば、式展開ではシングルは使えません。
name = "太郎"
puts 'こんにちは、#{name}' # => こんにちは、#{name}
puts "こんにちは、#{name}" # => こんにちは、太郎
JavaScriptにおけるシングルクオート、ダブルクオート、バッククオート
シングルクオートとダブルクオートの間には機能的な違いはありません。
バッククオートは式展開(${変数})などを記述できます。
const name = "太郎";
console.log('こんにちは、' + name); // => こんにちは、太郎
console.log("こんにちは、" + name); // => こんにちは、太郎
console.log(`こんにちは、${name}`); // => こんにちは、太郎
変数や式を埋め込む必要がある場合にはバッククオートのほうが可読性が高そうです。
最後に
書き足したいことがあれば追記していきます。
次は、用語の比較もやりたいです。