Рубрики
Без рубрики

Синтаксические различия между Ruby и JavaScript

Эта статья первоначально появилась на https://vahid.blog, я работаю с JavaScript на некоторое время … Помечено синтаксисом, Ruby, JavaScript, языки.

Эта статья изначально появилась на https://vahid.blog.

Некоторое время я работаю с JavaScript сейчас и довольно комфортно с его синтаксисом получился довольно комфортно.

Сейчас я также использую Ruby снова, у которого немного другой аромат.

Вот некоторые основные синтаксические различия между двумя языками, в формате таблицы.

1. Основы

Snake_Case. CamelCase Конвенция об именах для переменных, функций и методов
Pascalcase Pascalcase Конвенция об именах для классов
uvery_array = [1,2] Пусть Somearray = [1,2]; Хотя VAR был исключительно использован в более старых кодовых базах, пусть теперь больше поощряется Потому что пусть Block Scoped, в то время как VAR является функцией, находящими наличию и может вызвать непреднамеренные последствия Объявление переменных
Quey_constant = 3.14 Ruby бросит предупреждение при попытке переназначить что-то еще в константу, но позволит вам сделать это const someconstant = 3.14; Переназначение чего-то другого к константу, бросит ошибку Объявляя константы
Вы можете объявить глобальную переменную в любом месте, используя $ просто перед именем переменной (например, $ thiss_is_a_global_variable = 2100) Объявите переменную с помощью пусть или Const в глобальном контексте. Однако, если переменная с таким же именем объявляется в локальном объеме, локальная переменная будет использоваться в этой области, но не глобальная переменная Объявление глобальных переменных
# это однострочный комментарий в Ruby это многострочный комментарий в Ruby // Это однострочный комментарий в JS / * Это многострочный комментарий в JS * / Комментарии
ставит «привет мир» Console.log («Hello World»); Печать в консоли (автоматически добавляя новую строку)
Печать «Привет» Process.Stdout.Write («Hello») ; Печать на консоль (без новой строки)
если uvere_condition # это # и это ELSIF quey_other_condition # это вместо этого все остальное # if (somecondition) {// делаю Это // и Это} else, если (домуобразие) {// сделать это вместо этого} else {// в противном случае сделаем это} Условные заявления
сделай это Если условие Если (условие) Детс; однострочное условное утверждение
условие ? do_this_if_true: do_this_if_false. условие ? Дотизифтрий: Дотизифальс; Тройное условное выражение
Выражение корпуса, когда X #Code Block, когда Y #Code Block Enter #Code Block End Переключатель (выражение) {Case X: // Перерыв в блоке кода; случай Y: // перерыв блока кода; По умолчанию: // Bode Block} Если вы не ломаетесь, JS будет выполнять каждую строку после этого Выключатель / случай
def quey_method (param1, param2) #do Вещи Вернуть что-то конец, если ключевое слово возврата никогда не используется, метод вернет все, что рассчитано на последней строке до окончания оператора. Функция некоторой функции (param1, param2) {// делают вещи что-то еще; } Если ключевое слово возврата никогда не используется, функция вернет undefined Определите функцию / метод
себя это Ключевое слово для ссылки на текущий конкретный экземпляр объекта
Начните # сделать что-нибудь рискованное спасение # конец попробуйте {// сделать что-то рискованное} catch (Err) {// Ошибка обработки здесь} Обработка ошибок

2. Массивы и строки

new_array = uvery_array`.map { const newarray = somearray.map (el => el * 2) Map / Collection Method (возвращение нового массива настраиваемых элементов из оригинального массива)
uver_array.each { somarray.foreach (el => console.log (el)); Итайте через элементы массива в одной строке и без необходимости в индексе #
uvery_arr.each_index. делать для (пусть; i <somearrl.length; i ++) {console.log (i, somearr [i]); // Остальный блок} Итайте через элементы массива для выполнения блока, требующего индекса #
uvery_array.delete_at (i) Чтобы удалить все элементы определенного значения (например, «CAT») независимо от номера индекса, используйте: quey_array.delete (‘cat’) somarray.splice (I, длина); Где # начать удаление, и длина = # элементов для удаления Удалить элемент при индексе I массива
const uniquearray = [… Новый набор (Сомэррай)]; Вернуть уникальные значения массива
const.filter (EL => EL> 5); Например. Возвращает все элементы в Somearray больше 5 Фильтруйте массив
quey_array.include? (5) Например. Возвращает true, если имеет элемент quote_array со значением 5 для методов, которые возвращают булевую, ключевую конвенцию Ruby – это назвать их с помощью? в конце somarray.includes (5); Например. Возвращает true, если у Somearray есть элемент со значением 5 Проверьте, находится ли элемент в массиве
Строка Concatenation
var_string = uvere_num.to_s. Пусть varstring = somenum.tostring (); Преобразовать номер в строку
var_num = quey_string.to_i. Пусть варнум (SAMESTRING); Преобразовать строку в целое число
var_num = quey_string.to_f. Пусть варнум (SAMESTRING); Преобразовать струну на поплавок

3. Объекты/хэши

хэш объект Тип данных пары ключа вызывается
Старый метод, символ и хэш-ракеты: que_hash = {: key1 => значение1,: key2 => значение2} или новее, метод очистителя: uvere_hash = {key1: value1, key2: value2} const uventobject = {key1: value1, key2: value2}; Объект / хеш Создание + назначение (буквальное обозначение)
some_hash.new const eventobject объект; Создание объекта / хеш (нотация по созданию класса)
some_existing_object [: Key3] = значение3. SomeexistingObject [Key3] = значение3; или someexistingobject.ky3 = значение3; Добавить пару клавиши / значения на существующий объект / хеш
uver_hash.each { для (допустить ключа в какой-нибудь vjobject) {console.log (ключ, quotebject [ключ])}; Итерация через объект / хеш в одной линии
const somearray = object.entries (какой-тоobject); Конвертируйте объект / хеш на массив подзаготовок [ключ, значение]
uvery_hash.delete (uvere_key) Удалить quotebject [umykey]; Удалить ключ / Value Pair
uvery_hash.has_key? (que_key) – или – метод Fetch позволяет получить значение в клавише или указывать альтернативное возвращаемое значение, если ключ не существует: uvere_hash.fetch (uvere_key, сообщение об ошибке “) quotebject.hasownproperty (Swiorkey) Проверьте, имеет ли объект / хеш ключ

Оригинал: “https://dev.to/dej/syntax-differences-between-ruby-and-javascript-1adl”