В последней статье мы обсудили следующее

  • Условные операторы
  • Блоки
  • Операторы сравнения
  • Логические операторы
  • Истинные и ложные ценности
  • Тернарные операторы
  • Случаи переключения

Сегодня мы обсудим следующее

  • Определения функций
  • Позиционные и ключевые слова/именованные параметры
  • Стрелочные функции в Javascript

Определения функций

В этом разделе мы обсудим основной способ определения функций в Python и JavaScript. Мы будем определять функцию с именем func. Он просто рассчитает сумму 10,20 и вернет сумму

питон

Ниже приведен синтаксис функции в Python.

def functionName():
  '''
  SOME CODE
  '''
  pass

Теперь давайте определим функцию func, которую мы обсуждали ранее.

def func():
  sum = 10 + 20
  return sum 

# Calling the function func
func()

JavaScript

Ниже приведен общий синтаксис функции.

function functionName(){
  /*
  SOME CODE
  */
  pass
}

Давайте определим функцию func в javascript.

function func(){
  let sum = 10 + 20
  return sum
}
// Caling the function func
func()

Параметры

Если вы хотите узнать о позиционных и ключевых аргументах, ознакомьтесь с этой статьей.

питон

  • Python поддерживает параметры по умолчанию и параметры, отличные от параметров по умолчанию.
  • Python может принимать позиционные и ключевые аргументы
  • В Python при вызове функции позиционные аргументы НЕ МОГУТ следовать за аргументами ключевого слова.
  • В Python, если мы не передаем аргумент для параметров, отличных от значений по умолчанию, Python вызовет исключение.
'''
Default Parameter
'''
def func1(num1 , num2 = 10):
  return num1 + num2 
print( func1(10) )   # OUTPUT: 20
print ( func1(1,1) ) # OUTPUT: 2  

'''
Positional and Keyword Arguments
'''
def func2(num1 , num2 , num3, num4):
  return num1 + num2 + num3 + num4
print( func2(10,10,num3=30,num4=5) )# OUTPUT: 55
print( func2(10,num2=10,10,num4=10) ) # ERROR
'''
Not passing an argument for non-default parameters
'''
print( func2(10,10,num3=30) )# OUTPUT: TypeError

JavaScript

  • JavaScript поддерживает параметры по умолчанию и параметры, отличные от параметров по умолчанию.
  • JavaScript может принимать как позиционные, так и именованные аргументы. Именованные аргументы в JavaScript аналогичны аргументам ключевых слов в Python.
  • В JavaScript при вызове функции позиционные аргументы могут следовать за именованными аргументами. Однако вам необходимо соблюдать порядок аргументов и параметров. Мы обсудим это ниже
  • В JavaScript, если вы не передадите аргумент для параметров, отличных от значений по умолчанию, для параметра будет установлено значение undefined. В отличие от Python, JavaScript не возвращает ошибку.
/*
  Default Parameters
*/
function func1(num1 , num2 = 10){
  return num1 + num2
}
console.log(func1(10)) // OUTPUT: 20
console.log(func1(1,1)) // OUTPUT: 2
/*
Not passing an argument for non-default parameters
*/
function func2(num1,num2,num3,num4){
  return num1+num2+num3+num4
}
console.log(func2(10,20,30)) // OUTPUT: Nan

Как упоминалось выше, порядок позиционных и именованных аргументов не имеет значения, но вы должны быть осторожны при их использовании.

function func2(num1,num2,num3,num4){
  console.log("num1: " + num1)
  console.log("num2: " + num2)
  console.log("num3: " + num3)
  console.log("num4: " + num4)
}

Мы попробуем передать позиционные и именованные аргументы в вышеуказанную функцию.

func2(10,20,num3=30,num4=40)
/*
num1: 10
num2: 20
num3: 30
num4: 40
*/

func2(10,20,num3=30,40)
/*
num1: 10
num2: 20
num3: 30
num4: 40
*/

Но вот это становится странным

func2(10,num3=30,20,40)
/*
num1: 10
num2: 30
num3: 20
num4: 40
*/

Хотя мы явно устанавливаем num3 равным 30, внутри функции num2 устанавливается равным 30, а num3 устанавливается равным 20. Нам нужно соблюдать порядок параметров. Если порядок параметров не соблюдается, параметры устанавливаются в соответствующие значения аргументов (независимо от того, являются ли они позиционными или именованными).

func2(10,num1=30,20,40)
/*
num1: 10
num2: 30
num3: 20
num4: 40
*/

Стрелочные функции в JavaScript

Хотя это и не связано, Python поддерживает лямбда-функции, вы можете узнать больше о них здесь.

JavaScript поддерживает стрелочные функции. Это просто более чистая версия определения функций. Ниже представлена ​​шпаргалка. Стрелка представляет собой знак равенства (=), за которым следует знак больше (›)

Первоначально опубликовано на https://www.realpythonproject.com 24 апреля 2021 г.