1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ruby と JavaScript よく使う構文比較表

Posted at

はじめに

こんにちは。最近フロントエンド中心の開発から、バックエンドでRuby(+Rails)を書くことが増えてきたので、JavaScriptとの違いを意識しながらRubyの超基本構文をまとめました。

この記事では、JSとRubyの構文の違いに戸惑ったポイントを中心に、「JSならこう書くけど、Rubyだとこう書くんだな」という形で紹介します。これからRubyを学ぶJS経験者の方に向けた内容です。

💡 基本構文比較一覧

項目 Ruby JavaScript 補足
変数宣言 name = "さくら" let name = "さくら"; Rubyは型宣言不要。let/const も不要
出力 puts "こんにちは" console.log("こんにちは"); puts は改行あり、print は改行なし
文字列展開 "こんにちは、#{name}さん" `こんにちは、${name}さん` どちらもテンプレートリテラル的な構文
if / else if 条件 ... elsif ... else ... end if (...) { ... } else if (...) {} Rubyは end が必要
三項演算子 条件 ? 真 : 偽 条件 ? 真 : 偽 書き方は同じ
後置if puts "OK" if 条件 ×(類似構文なし) Ruby特有の簡潔な表現
配列定義 [1, 2, 3] [1, 2, 3] 両方同じ構文
配列ループ `[1,2,3].each { x puts x }`
map(変換) `[1,2,3].map { x x * 2 }`
filter/select `[1,2,3].select { x x.even? }`
変数がnilなら `name "デフォルト"`
null/undefined対策 `name "N/A"`
関数定義 def greet(name); ... end function greet(name) { ... } Rubyは def、JSは function やアロー関数
クラス class User; def initialize... end class User { constructor(...) { ... }} 概念は同じ
インスタンス化 user = User.new("さくら") const user = new User("さくら"); Rubyでは .new が必要
nilチェック if name.nil? `if (name === null
安全呼び出し user&.name user?.name &. は JS の ?. に対応
例外処理 begin ... rescue => e ... end try { ... } catch(e) { ... } 書き方は違うが意味は同じ
コメント # コメント // コメント Rubyは =begin ... =end も使える

いくつかピックアップして深掘り

1. putsconsole.log の違い

JSでは console.log を使いますが、Rubyでは puts を使います。改行付きで表示されるので便利です。

puts "こんにちは"  # => 改行あり
print "こんにちは" # => 改行なし

2. each, map, select はよく使う

JSで forEach, map, filter をよく使う人は、Rubyでは以下のように書きます

[1, 2, 3].each { |n| puts n }

[1, 2, 3].map { |n| n * 2 }      # => [2, 4, 6]

[1, 2, 3, 4].select { |n| n.even? }  # => [2, 4]

{ |n| ... } の部分がブロックです。

3. ||nullfalse の代替に使う

user_name = name || "ゲスト"

これは JS の const name = name || "ゲスト" と同じ意味です。

おわりに

RubyはJavaScriptと違う部分も多いですが、どちらも柔軟で読みやすい言語です。Rubyは「人にやさしい構文」が多く、慣れると気持ちよく書ると思うので、お勉強したいと思います。

1
0
0

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?