Во вчерашней статье мы обсудили следующее
- Почему вы должны изучать JavaScript
- Как запустить JavaScript/Python и показать результат
- Переменные
- Комментарии
Сегодня мы поговорим о следующем
- Условные операторы
- Блоки
- Операторы сравнения
- Логические операторы
- Истинные и ложные ценности
- Тернарные операторы
- Случаи переключения
Условные операторы
Питон
Python поддерживает следующие
- условия if
- другие заявления
- операторы elif Ниже приведен пример
num = 10
if num > 20: print("If statement") elif num > 10: print("Elif statement") else: print("Else statement")
Давайте попробуем написать тот же фрагмент кода на JavaScript.
JavaScript
JavaScript поддерживает следующие
- условия if
- другие заявления
- операторы else if — операторы else if в JavaScript аналогичны операторам elif в Python.
В отличие от Python, в JavaScript условия должны быть заключены в скобки.
let num = 10
if (num > 20) console.log("If Statement") else if (num > 10) console.log("Elif Statement") else console.log("Else Statement")
Блоки
Что, если нам нужно несколько операторов внутри блоков if…else?
Питон
В Python мы используем оператор двоеточия и отступ для объявления блоков.
num = 10
if num > 20: print("If statement 1") print("If statement 2") else: print("Else statement 1") print("Else statement 2")
JavaScript
В JavaScript отступ не является обязательным. Это просто хорошая практика, чтобы сделать ваш код более читабельным. Мы используем {} для объявления блоков
let num = 10
if (num > 20){ console.log("If Statement 1") console.log("If Statement 2") } else{ console.log("Else Statement 1") console.log("Else Statement 2") }
Операторы сравнения
Питон
Python имеет следующие операторы сравнения
< , <=
> , >=
==, !=
JavaScript
В JavaScript есть все вышеперечисленные операторы, а также несколько дополнительных операторов.
===
!==
Так в чем же разница между ==,!= и === и !== в JavaScript?
== и != сравнивают только значение независимо от их типа. Рассмотрим следующий фрагмент кода
if (10 == "10") console.log("If statement is True") else console.log("Else statement is True")
/* OUTPUT If statement is True */
Условие if на самом деле истинно при использовании оператора ==. Хотя типы данных разные, значения одни и те же.
В Python 10 == «10» равно False. Python сравнивает и значение, и тип.
Следующее также оценивается как True в JavaScript
1 == [1]
'1' == [1]
С другой стороны, операторы === и !== сравнивают как значение, так и тип данных. Таким образом, в основном === и !== в JavaScript похожи на == и != в Python.
if ( 10 === "10") console.log("If statement is True") else console.log("Else statement is True")
/* OUTPUT Else statement is True */
Python не поддерживает никаких операторов, которые работают так, как == работает в JavaScript. Чтобы добиться аналогичной функциональности, мы могли бы использовать приведение типов и преобразовать обе части условия в один и тот же тип.
if str(10) == "10": print("If Statement is True") else: print("Else Statement is True")
''' OUTPUT If Statement is True '''
Логические операторы
Питон
В python мы можем использовать следующие операторы для объединения выражений
- и
- or
- нет
var1 = True var2 = False var3 = True var4 = True
if var1 and var2 or var3 and not var4: print("It evaluates to True") else: print("It evaluates to False")
JavaScript
JavaScript имеет следующие логические операторы
- && — оператор и в Python
- || — или в операторе Python
- ! — не оператор в Python
let var1 = true let var2 = false let var3 = true let var4 = true
if (var1 && var2 || var3 && !var4) console.log("It evaluates to True") else console.log("It evaluates to False")
Истинные и ложные ценности
Значения Truthy и Falsy — это значения, не ограниченные логическими значениями, которые оцениваются как True или False.
Питон
В Python следующее оценивается как False
- Пустая строка — «» или «»
- Никто
- пустой итерируемый
- 0
- 0.0
- Ложь
JavaScript
В JavaScript следующее оценивается как False
- Пустая строка — «» или «»
- нулевой
- неопределенный
- NaN
- 0
- 0.0
- ложный
В JavaScript пустые массивы (списки) [] и пустые объекты {} являются истинными значениями, то есть они оцениваются как True.
Тернарные операторы
Питон
num = 10
num_type = "Even" if num%2 ==0 else "Odd"
JavaScript
В javascript используйте следующий синтаксис для тернарных операторов
let variableName = condition ? trueCase : falseCase
Если бы мы хотели написать фрагмент кода Python с тернарными операторами в JavaScript
let num = 10
let num_type = num%2 ? "Even" : "Odd"
Случаи переключения
Питон
Switch Cases не поддерживался до Python 3.10. К сожалению, на сегодняшний день стабильная версия Python 3.10 недоступна.
JavaScript
Ниже приведен общий синтаксис операторов переключения регистра в JavaScript.
switch (expression){
case value1:
// code
break
case value2:
// code
break
.
.
.
.
default:
// code
}
- Если значение переменной соответствует какому-либо из случаев, выполняется блок конкретного случая.
- Не забудьте включить оператор break в каждый блок case, иначе, даже если case совпадет, следующие case также будут выполнены.
- Блок по умолчанию подобен подстановочному знаку, т.е. если ни один из вариантов не соответствует, выполняется блок по умолчанию.
Ниже показан корпус переключателя в действии.
let cost = 10
switch (cost){ case 5: console.log("It is greater than 5") case 8: console.log("It is greater than 8") case 10: console.log("It is greater than 10") default: console.log("Default") }
/* OUTPUT It is greater than 10 Default */
Мы не использовали операторы break, в результате выполнялся как последний case, так и блок по умолчанию.
let cost = 10
switch (cost){ case 5: console.log("It is greater than 5") break case 8: console.log("It is greater than 8") break case 10: console.log("It is greater than 10") break default: console.log("Default") }
/* OUTPUT It is greater than 10 */
Поскольку в приведенном выше фрагменте кода есть операторы break, был выполнен только последний блок case.
Первоначально опубликовано на https://www.realpythonproject.com 19 апреля 2021 г.