1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RubyとJavaScriptの文法簡易比較

Last updated at Posted at 2023-11-11

はじめに

新しい言語を学習していく中で、今まで学習した各言語の文法を比較整理したくなり記事にします。
初学者のため、比較している内容も基礎的な内容になります。
間違いがあればご指摘いただけると幸いです。

文字列の出力

Ruby
puts 'Hello World'
JavaScript
console.log('Hello World');

変数、定数

  • 変数
    データ(数値、文字列など)を入れておく箱のようなもの。
  • 定数
    変数同様にデータを入れておく箱のようなものですが、一度値が設定されると、その値を変更することはできません(変更しようとするとエラーになるか、警告が出ます)。

Rubyの定数は調べていて初めて知りました。
Ruby の定数は、アルファベットの大文字で始まる決まりです。
2 文字目以降は小文字でもOKのようですが、慣例ではすべて大文字とのこと。

Ruby
number = 10 #変数
PI = 3.14 #定数
JavaScript
var number = 10; //変数
let number = 10; //変数
const number = 10; //定数
  • var
    原則使用しない
  • let
    値が変わる(予定がある)変数を定義する際に使用
  • const
    値が変わらない変数を定義する際に使用
再代入 再宣言
var
let ×
const × ×
  • 宣言
    変数という箱を用意すること
  • 代入
    箱に値を入れること
  • 再宣言
    前の値が入った箱ごと捨てて新しい箱を用意する
  • 再代入
    箱の中の値を入れ直す

文字列の中で変数を使用するとき(式展開)

Ruby
name = "太郎"
puts "私の名前は#{name}です。"

Rubyでは、ダブルクオート(")で囲まれた文字列の中で#{変数名}を使用して変数の値を埋め込むことができます。シングルクオート(')では式展開は行われません。

JavaScript
const name = "太郎";
console.log(`私の名前は${name}です。`);

JavaScriptではバッククオート( )で囲まれたテンプレートリテラルの中で${変数名}`を使用して変数の値を埋め込むことができます。

if

書き方

Ruby
if 条件式1
# 条件式1がtrueのときの処理
elsif 条件式2
# 条件式1がfalseで条件式2がtrueのときの処理
else
# 条件式1も条件式2もfalseのときの処理
end
JavaScript
if (条件式1) {
  // 条件式1がtrueのときの処理
} else if (条件式2) {
  // 条件式1がfalseで条件式2がtrueのときの処理
} else {
  // 条件式1も条件式2もfalseのときの処理
}

Ruby
# 変数の宣言
number = 5


# 条件分岐
if number > 7
  puts "大きい"
elsif number < 3
  puts "小さい"
else
  puts "中間"
end
JavaScript
// 変数の宣言
const number = 5;

// 条件分岐
if (number > 7) {
  console.log("大きい");
} else if (number < 3) {
  console.log("小さい");
} else {
  console.log("中間");
}

繰り返し処理(each)

書き方

Ruby
配列.each do |変数|
  # 各要素に対する処理
end
JavaScript
配列.forEach(function(変数) {
  // 各要素に対する処理
});

Ruby
# 配列の宣言
numbers = [1, 2, 3]


# eachメソッドで繰り返し処理
numbers.each do |num|
  puts num
end
JavaScript
// 配列の宣言
const numbers = [1, 2, 3];

// forEachメソッドで繰り返し処理
numbers.forEach(function(num) {
  console.log(num);
});

配列の各要素に対して繰り返し処理を行います。この例では配列の各要素(1, 2, 3)を出力します。

RubyのメソッドとJavaScriptの関数

書き方

Ruby
def メソッド名(引数)
  # 処理
end
JavaScript
function 関数名(引数) {
  // 処理
}

Ruby
def say_hello
  puts "こんにちは!"
end

say_hello # "こんにちは!"と出力される
JavaScript
function sayHello() {
  console.log("こんにちは!");
}

sayHello(); // "こんにちは!"と出力される

コメントアウト

Ruby
# コメント
 
=begin 
複数行を
コメントアウトします
=end
 
__END__
以降を全てコメントアウトします
JavaScript
// 一行をコメントアウトします

/*
複数行を
コメントアウトします
*/

シングルクオートとダブルクオートとバッククオート

Rubyにおけるシングルクオートとダブルクオート

Rubyではシングルクオートとダブルクオートを使用します。
調べた感じでは、ダブルクオートのほうが制約が少なく使いやすそうです。
例えば、式展開ではシングルは使えません。

Ruby
name = "太郎"
puts 'こんにちは、#{name}'  # => こんにちは、#{name}
puts "こんにちは、#{name}"  # => こんにちは、太郎

JavaScriptにおけるシングルクオート、ダブルクオート、バッククオート

シングルクオートとダブルクオートの間には機能的な違いはありません。
バッククオートは式展開(${変数})などを記述できます。

JavaScript
const name = "太郎";
console.log('こんにちは、' + name);  // => こんにちは、太郎
console.log("こんにちは、" + name);  // => こんにちは、太郎
console.log(`こんにちは、${name}`);  // => こんにちは、太郎

変数や式を埋め込む必要がある場合にはバッククオートのほうが可読性が高そうです。

最後に

書き足したいことがあれば追記していきます。
次は、用語の比較もやりたいです。

参考にした記事

Ruby、PHP、Java、JSでの書き方の違い

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?