Займите правильное пространство
От Ruby к JavaScript — смена шляп
Устраните ошибки синтаксиса, соглашения об именах и номенклатуры.
Добро пожаловать в мою новую серию «Меняем шляпы». Создан для быстрого чтения, чтобы заполнить пробел перед переходом от написания Ruby к написанию JavaScript или наоборот. Это чтение предназначено для того, чтобы помочь вам избежать использования синтаксиса Ruby, соглашений об именах, практики использования регистра и номенклатуры в вашем коде JavaScript или наоборот.
Сходства Ruby + JavaScript
В большинстве (если не во всех) языках программирования есть версии целых чисел, чисел с плавающей запятой, логических значений, массивов и хэшей. Некоторые языки программирования по-разному относятся к тому, как называть хеши, но Ruby и JavaScript, кажется, единодушно согласны с этими именами.
(Python любит называть хэши словарями)
Различия между Ruby и JavaScript
Ruby, JavaScript и большинство других языков следуют одним и тем же концепциям. переменные и константы для хранения информации, функции для инкапсуляции блоков кода, которые вы хотите запустить, классы для создания шаблонов объектов для дополнительного семантического кода, на который можно ссылаться. Wile Ruby называет блоки вызываемого кода Методами, JavaScript предпочитает называть их Функциями. Больше синтаксических различий между ruby и JavaScript перечислены и описаны ниже.
Соглашения об именах
Переменные
При именовании переменных в Ruby обычно используется «Snake Case». что означает, что вы разделяете слова символом подчеркивания my_example = "string"
. Принимая во внимание, что JavaScript использует «Camel Case». Какова практика использования заглавной буквы в каждом слове, КРОМЕ первого слова likeThisExample = “str”
.
Константы
При объявлении констант в Ruby не используется декларативное слово, поэтому принято просто писать каждое слово с заглавной буквы, продолжая использовать snake_case
EXAMPLE_ONE = "string"
. В JavaScript есть декларативное слово const
, но мы следуем тому же правилу использования заглавных букв и змеиного регистра, что и в приведенном выше примере Ruby.
Классы (Объекты)
в обоих случаях классы считаются константами, потому что класс подобен шаблону для объектов, которые будут созданы и на которые можно ссылаться позже, поэтому наш шаблон не должен меняться, но будут изменяться значения наших атрибутов. в этом особом случае и JavaScript, и Ruby следуют одному и тому же соглашению об именах и регистре. camelCase, НО все константы также должны начинаться с заглавной буквы MyClassNameExample
.
Переменные
Объявление переменной
Рубин:
variable_name = "this is my ruby string"
JavaScript:
var variableName = "This is my Javascript string"
Объявление переменной Javascript с помощью var
используется нечасто, потому что объявление переменной таким образом создает «глобальную переменную». что обычно является плохой практикой и обычно означает, что вам нужно провести рефакторинг
Чаще всего в соответствии с рекомендациями вы объявляете переменную Javascript с помощью let
. Это создает переменную в текущей области(если вы объявите let внутри функции, он будет доступен только внутри этой функции).
let variableName = "this is my javascript string"
Присвоение нового значения
И Ruby, и JavaScript присваивают новое значение переменной точно так же, но с разными соглашениями об именах.
Рубин:
variable_name = "this is my NEW ruby string"
JavaScript:
variableName = "this is my NEW JavaScript string"
Методы => Функции
Ruby использует методы, а JavaScript использует функции. Оба функционируют в основном одинаково (каламбур, лол).
Вы можете передавать аргументы в круглых скобках и вызывать функцию/метод из ее области.
Чтобы объявить метод Ruby, мы используем ключевое слово def
.
def my_method_name(arguments) #method body here end # or ------------------------ def myMethodName(args){ #method body here }
⚠️ (не лучшая практика)
Для объявления функций JavaScript мы используем function
декларативно.
function myFunctionName(args){ //Function body here }
✅(лучшая практика)
const myFunctionName = (args) => { //Function body here }
Операторы Если Операторы Если
Операторы Ruby и JavaScript if работают в основном одинаково. С немного другим синтаксисом. Ниже в нашем примере Ruby вы увидите, что он не требует, чтобы наш сравнительный оператор был в круглых скобках, в отличие от нашего кода JavaScript.
Рубин:
if my_int <= 0 # Do this elsif my_int > 0 # Do this instead else # if all else fails do this end # don't forget your end keyword
JavaScript:
if (myInt <= 0){ // Do this } else if (myInt > 0){ // Do this instead } else { // If all else fails do this }
Объекты + Классы
Рубин:
class MyRubyClass #Class body here end
(Обратите внимание, что в классах Ruby мы используем регистр объявления константы. Начиная с заглавной буквы и продолжая верблюжьим корпусом)
JavaScript:
class MyJavascriptClass{ //Class body here }
Инициализаторы => Конструкторы
Рубин:
class MyRubyClass @@all = [] def initialize(args) @name = args.name @@all.push(self) end end
JavaScript:
class MyJavascriptClass{ constructor(args) { this.name = args.name MyJavascriptClass.all.push(this) } } MyJavascriptClass.all = []
Это должно помочь вашему мозгу привыкнуть к новой среде кодирования, на которую вы переходите. Будь то Ruby или JavaScript, ваши ошибки в будущем должны быть смягчены.
Спасибо, что читаете Меняя Шляпы!