Во вчерашней статье мы обсудили следующее

  • Почему вы должны изучать 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 г.