ВВЕДЕНИЕ
Полное понимание вышеупомянутых концепций в JavaScript в значительной степени поможет вам в вашем продвижении в программировании. Вы поймете, что их понимание улучшит более чистый и ясный код, который будет легко отлаживать, а также сократит их. Эта статья направлена на то, чтобы разбить эти три концепции на возможные части для облегчения понимания.
ФУНКЦИИ
По сути, функции принимают входные данные и возвращают их в качестве выходных данных. Они являются одним из основных строительных блоков в JavaScript. Другими словами, Функция — это набор кодов, структурированных для выполнения заданной задачи всякий раз, когда она вызывается. В результате их можно вызывать столько раз, сколько возможно, что устраняет ненужное повторение кода.
Как объявить функцию
function showGreeting (Parameter ) { // function body };
showGreeting()
Чтобы объявить функцию, вы начинаете с ключевого слова функции (функция), затем имени function(showGreeting())
, затем параметра, который должен быть заключен в круглые скобки ((Параметр)). У вас может быть список параметров, но они должны быть разделены запятыми. Тело функции будет заключено в фигурные скобки {}
, как показано выше. Затем будет вызвано имя функции для выполнения функции, как показано (showGreeting())
.
Локальные и внешние переменные
Локальные переменные относятся к переменным, объявленным внутри функции. Например;
function showGreeting () { let welcomeNote = 'Hello, You Are Most Welcome!'; alert(welcomeNote); };
showGreeting()
Важно отметить, что переменная “let welcomeNote”
, содержащая строку «Здравствуйте, приветствуем вас!», может выполняться только внутри вызываемой функции, поскольку она была объявлена локально.
С другой стороны, внешние переменные, также известные как глобальные переменные, относятся к переменным, объявленным глобально, то есть вне функции. Оттуда функция может получить к нему доступ и даже изменить его, вызвав его локально.
let name = "Grace";
function showGreeting () {
name = "Constance";
let welcomeNote= `Hello ${name}, You Are Most Welcome!`;
alert(welcomeNote);
}
showGreeting();
Приведенная выше функция вернет «Здравствуйте, Констанс, добро пожаловать!» ’. Внешняя переменная используется только тогда, когда нет локальной. Когда есть локальная, она переопределяет глобальную переменную.
Примечание: Функция является ЧИСТОЙ, когда она принимает свои входные данные, используйте ТОЛЬКО их для вычисления выходных данных, а затем возвращайте их. Следовательно, для более чистого и всеобъемлющего кода желательно, чтобы ваши отдельные функции имели свои собственные параметры, локальные переменные, а не внешние переменные, которые работают и возвращают свой собственный результат.
Параметры
Они просто используются для передачи данных функциям. Их также называют Аргументы. Например;
function showGreeting ( firstName, lastName ) {
let welcomeNote = 'Hello ';
alert (welcomeNote + firstName + lastName);
}
showGreeting ('Ajuzie', ' Constance')
Из вышеизложенного переменной (firstName, lastName)
были присвоены значения (‘Ajuzie’, ‘ Constance’)
. Поэтому при выполнении он вернет «Hello Ajuzie Constance».
Параметры по умолчанию
Если параметр не указан, значение остается неопределенным, поскольку изначально оно не было передано в качестве параметра. Например, если «showGreeting (‘Ajuzie’)» была вызвана для выполнения ее функции, она вернет “ Hello Ajuzie undefined”
, поскольку переменной ‘lastName’
не было присвоено значение. Итак, чтобы присвоить значение по умолчанию этой конкретной переменной, переданной в качестве параметра, это следует сделать следующим образом;
function showGreeting ( firstName, lastName= ' Constance' ) {
let welcomeNote = 'Hello ';
alert (welcomeNote + firstName + lastName);
}
showGreeting ('Ajuzie');
Приведенный выше код выведет « Hello Ajuzie Constance». Это означает, что, за исключением того, что для ‘(lastName)’ назначено другое значение, его значение по умолчанию равно (‘Constance’).
СФЕРА
Область видимости — это видимость функций и переменных в разных частях вашего кода во время выполнения.
В JavaScript в основном есть два типа областей видимости, а именно;
• Global Scope (These are variables that can be accessed everywhere)
• Functional/Local Scope (These are variables that can be accessed in the boundaries of the function in which they are declared.)
Например;
const globalScope = 'I am global scope';
function getScope () {
const globalScope = 'I am function/ local scope';
console.log(globalScope); // ’I am a function/ local scope’
}
getScope();
console.log (globalScope); //’I am a global scope’
Как мы видим в приведенном выше примере, значение глобальной области видимости сохраняется только в границах функции, в которой она вызывается. Вне его значение остается объявленным глобально. В более широком примере давайте кратко рассмотрим этот пример ниже;
const globalScope = 'I am a global scope'; const secondGlobalScope = 'I am also a global scope'; const thirdGlobalScope = ' I am another global scope';
function getScope () {
const globalScope = 'I am a function scope'; const secondGlobalScope = 'I am equally a function scope';
function getAnotherScope () {
const fourthGlobalScope = 'I am a child function scope';
console.log(globalScope); // 'I am a function scope' console.log(thirdGlobalScope); // 'I am another global scope'
}
getAnotherScope(); }
getScope();
console.log(fourthGlobalScope); // Reference Error console.log(globalScope); // 'I am a function scope' console.log(thirdGlobalScope); // 'I am another global scope'
Как видно из приведенного выше примера, функция getAnotherScope()
будет иметь доступ к переменным, объявленным в родительской функции getScope()
. Всякий раз, когда нам нужна переменная внутри функции, движок сначала будет искать ее в области действия текущей функции. Затем он перейдет на уровень вперед в функции, содержащей его. Если он не найдет его там, он будет продолжать подниматься вверх, пока не достигнет глобальной области видимости. Если переменная там не найдена, мы получим ошибку ссылки.
ФУНКЦИИ СТРЕЛКИ
В своей базовой форме стрелочная функция представляет собой новый способ написания более коротких функций. Эта функция была представлена в ES6.
СИНТАКСИС:
Let checkArr = (arr) => {
if (arr = ['fish', 'meat']) {
return 'there is an arr';
} else {
return 'arr not found'
}
}
Он становится короче, чем в приведенном выше примере, если функция имеет один оператор.
let checkArr = (arr) => 'there is an array'
Как видите, фигурные скобки и ключевое слово return не нужны.