Основы программирования с использованием JavaScript
Сегодня мы узнаем о происхождении основ языков программирования. Если мы знаем о происхождении, нам больше не нужно беспокоиться об этих вещах. Основами языков программирования являются:
- Переменные
- Операторы
- Условия
- Циклы
- Массивы
- Объекты
- Функции
- Выражение против утверждения
Переменные
Мы знаем, что переменная означает переменную. У новичков возникает проблема, где брать переменные, а где не брать. Для этого есть несколько приемов. Прежде всего, нам нужно знать, какова функция переменной? Проще говоря, переменные помогают нам сделать что-либо динамичным. Это единственная задача. Кроме этого, у переменной нет никакой другой функции. Она больше похожа на горшок. Чем больше емкость, тем больше места она занимает. Это означает, что требуется больше памяти. Так зачем же нужна дополнительная память? Можно сделать так, чтобы переменные занимали меньше. Тогда наше приложение будет намного легче. Но нам все равно придется принимать переменные. Как если бы мы пили воду. Как эта вода попадет к нам? Сначала вода из-под земли по трубам и насосам накапливается в резервуаре под домом. Затем через другой насос она попадает на крышу и хранится в другом резервуаре. Оттуда она распределяется по трубопроводам от дома к дому. Кран дома Через него мы накапливаем воду в фильтре. После фильтрации мы набираем эту воду в кувшин или бутылку. Затем, когда нам нужно выпить воды, мы пьем воду из кувшина или бутылки в стакан. Наша цель — пить воду, поэтому необходимо хранить воду в середине? Если бы мы не могли хранить резервуар, то невозможно было бы распределить воду по домам. Если бы я не поместил ее в фильтр, я не смог бы очистить воду. Так что переменные тоже подобны этому. Они хранят данные. Если мы не возьмем переменную, то не сможем использовать данные во второй раз. Это невозможно. Если я не помещу его в фильтр, я не смогу очистить воду. Так и переменные. Они хранят данные. Если мы не возьмем переменную, то не сможем использовать данные во второй раз. Это невозможно. Если я не помещу его в фильтр, я не смогу очистить воду. Так и переменные. Они хранят данные. Если мы не возьмем переменную, то не сможем использовать данные во второй раз.
console.log('Bipon Biswas', 'Bipon Biswas'.length); // Bipon Biswas 12
В приведенном выше примере, если мы хотим сделать это с любым другим именем, то это невозможно. Для этого нужно отказаться от текущего имени. Потому что в случае статического кода ничего не может быть изменено во время выполнения. Теперь может возникнуть вопрос: время выполнения и время компиляции?
console.log('Bipon Biswas', 'Bipon Biswas'.length); // Bipon Biswas 12
throw new Error('Something wrong'); // Error
Здесь с программой все в порядке. Но во время выполнения программы она выдает ошибку. Это называется ошибкой времени выполнения. Время выполнения программы называется временем выполнения.
console.log('Bipon Biswas', 'Bipon Biswas'.length); // Bipon Biswas 12
121354644dsfsdf
В этом случае первый код не будет выполняться, а покажет ошибку. Это означает, что при компиляции в коде возникла ошибка. Это называется ошибкой времени компиляции.
Теперь мы можем изменять многие вещи динамически во время выполнения. Например, мы можем ввести некоторые данные, получить что-то из Интернета, щелкнуть мышью. Все это происходит во время выполнения. Но когда мы работаем со статическими данными, как в первом примере, мы не можем никак изменить данные внутри журнала. Для этого нам нужны переменные. Каждый раз, когда мы будем просматривать данные, мы будем брать переменную.
let name = 'Bipon Biswas';
console.log(name, name.length); // Bipon Biswas 12
У переменных есть несколько преимуществ. Первое преимущество заключается в том, что мы взяли эти данные для Бипона Бисваса. Теперь я хочу взять для Мехди Хасана или взять для Мида Ахмеда Фахима. В этом случае изменяются только name
данные в нем. Еще одним преимуществом является то, что используется name
только в двух местах. Это могло бы быть две тысячи или двести тысяч. Теперь, если я по какой-то причине хочу изменить данные, возможно ли мне изменить два лакх места? В этом случае, если мы возьмем переменные, мы изменим только одно место. Нет необходимости бегать по оставшимся двум лакхам мест.
Другой пример наглядно покажет, как динамически изменять данные во время выполнения с помощью переменных.
const names = [
'Bipon Biswas',
'Aditya Chakraborty',
'Abu Rayhan',
'Shaker Hossain',
'Akib Ahmad',
'Alvi Chowdhury',
];
let index = -1;
let person = names[++index];
setInterval(() => {
person = names[index++];
console.log(person, person.length);
if (index === names.length) {
index = 0;
}
}, 1000);
Теперь, если вы запустите программу, то увидите, что имена будут меняться одно за другим через 1 секунду. Когда программа завершится, она снова начнет работу с самого начала. Этому не будет конца. Теперь, если мы просто зададим имя без использования переменных, то только это имя будет выводиться многократно. Динамики больше нет. А мы программируем, чтобы сделать все динамичным. Поэтому везде, где мы видим данные, мы будем предполагать переменную. Перейдем к дополнительной памяти.
Теперь давайте рассмотрим два важных термина let
и const
. Когда let
и когда const
использовать. Мы будем использовать его, когда увидим, что в будущем const
не обновляет данные. Тогда мы не сможем обновить эти данные, хотим мы этого или по ошибке. Если вы попытаетесь это сделать, появится ошибка. И мы будем использовать данные, которые имеют шанс быть обновленными позже let
. names
Теперь здесь обновление в примере выше. Поэтому мы const
использовали Но index
и person
мы обновили позже. Поэтому мы let
использовали там. Правило заключается в том, что мы предполагаем, что все сначала const. Затем, если произойдет обновление данных, мы сделаем это позже let
. Таким образом, у нас будет меньше шансов совершить ошибку.
Таким образом, получается, что переменные используются для динамического обновления данных во время выполнения программы.
Операторы
Все мы знакомы с оператором. С детства мы складываем, вычитаем, умножаем, делим. Там мы использовали некоторые математические операторы. Операторы в программировании также аналогичны. Операторы используются в языках программирования для выполнения математических вычислений. Больше никакой работы не требуется. Операторы — это, по сути, функции. В языках, где есть перегрузка операторов, мы создаем функции для выполнения операций с операторами. например
add();
mod();
lessThan();
add
Мы можем создавать и использовать функции для добавления. mod
Используя функцию, мы можем выполнить операцию по модулю, lessThan
мы можем проверить, мало наше значение или нет. Но в JavaScript нет перегрузки операторов. Поэтому нам не нужно создавать функции. JavaScript уже создал эти функции через некоторое символьное представление, так что наша работа намного проще. add()Вместо мы +
используем , mod()
вместо %
, lessThan
вместо мы <
используем . Когда дело доходит до операторов, не так много можно сказать о деталях.
Условия
Условие называется мозгом компьютера. На основе этого условия компьютер решает, какое действие предпринять. Хотя компьютер не имеет права принимать решения. Мы пишем различные логические схемы, чтобы заставить компьютер принять решение. Чтобы написать логику, нам нужно условие. Мы постоянно используем условие в нашей повседневной жизни. Например, если небо облачное, то я выйду на улицу с зонтиком, иначе я не выйду с зонтиком. Это условие. Опять же, предположим, что мой офис в 9 часов. Если я могу выйти из дома в 8 часов, то я поеду на автобусе или на CNG. Это тоже своего рода условие. Опять же, поскольку на сегодняшнем занятии будут преподавать основы, я не пойду на сегодняшнее занятие, если же будут преподавать продвинутые знания, то я пойду. Теперь давайте посмотрим, как можно преобразовать это условие в код.
if (studyBasic) {
wontJoin();
}
if (studyAdvanced) {
join();
}
if (teacherSpeaks) {
silent();
}
if (!teacherSpeaks) {
shout();
}
Попробуем немного разобраться. Я не буду присоединяться к сегодняшнему занятию, если будет преподаваться базовый уровень. Я присоединюсь, если будет преподаваться продвинутый уровень. Если учитель будет говорить, мы все будем молчать. Если он молчит, мы говорим все вместе. Вот так мы находим обусловленность в нашей повседневной деятельности. Все заморожено, кроме условия. 50% языка программирования — это условие, а 50% — цикл.
Теперь условие может быть записано тремя способами. То есть оно имеет 3 сценария. Давайте посмотрим на следующий код немного раньше. Я объясню позже.
// Scenario 1 - Single branch
// if condition
if (hasMoney) {
buyPhone();
}
// Scenario 2 - Two branches
// if else condition
if (toss === 'head') {
win();
} else {
loss();
}
// Scenario 3 - Multiple branches
// else if
let a = 1,
b = 2;
if (a > b) {
big();
} else if (a < b) {
small();
} else {
same();
}
-
Сценарий — 1: Это единственная ветвь. Здесь не может быть более одного случая. В этом случае мы будем использовать этот сценарий.
if условие
Оно называется Здесь говорится, что я куплю телефон, если у меня есть деньги. Если нет, то все останется как есть. Более одного случая здесь не нужно. Поэтому здесь мыif condition
просто используем. -
Сценарий — 2: В основном зависит от двух ветвей, т.е. будет иметь максимум два исхода.
if else condition
Он называется В таком сценарии никогда не будет возможно более двух условий. Например, если жребий выпадет головой, то я выиграю жребий или проиграю. Невозможно получить более двух результатов. -
Сценарий — 3: Множественные ветви. Если существует более двух возможных исходов, то мы будем их использовать. Этот тип сценария называется
else if condition
, то есть еслиa > b
a больше b. Еслиa < b
так, то a будет меньше b. В противном случае оба будут равны. Здесь есть более двух исходов. Поэтому здесь мы использовали несколько ветвей.
Условие зависит в основном от исхода. Я должен написать условие таким образом, чтобы определить, сколько исходов может произойти.
Цикл
У цикла есть только одна функция. Выполнение одного и того же действия снова и снова. Например, один из наших клиентов пришел и сказал, что Бангладеш сейчас 51 год. Мы сделаем в нашем приложении что-то, что скажет «Мы любим Бангладеш» 51 раз. Мы очень умные, мы написали 51 раз за 1 час и console.log(‘We love Bangladesh’) показали это клиенту. Клиент сказал, что нет бро 51 раз. Поскольку Бангладеш стал независимым в 1971 году, мы хотим 1971 раз. Теперь я писал тот же код снова и снова в течение 3 дней и показал его клиенту в сломанном состоянии. Клиент сказал: «Нет. Не так. Мы напечатаем его 30 000 раз в честь 30 000 мучеников. Я пошел, исследовал и обнаружил, что в JavaScript есть функция repeat()a, которая называется Теперь все просто. Я могу написать столько раз, сколько хочет клиент, написав всего одну строку кода. Я также написал следующий код и с гордостью отнес его клиенту всего за 10 минут.
console.log('We love Bangladeshn'.repeat(10));
Я летаю в небе. Спасибо JavaScript за эту функцию. На этот раз клиент был очень доволен. Но через некоторое время он сказал: «Ну, 30 миллионов раз было напечатано. Как пользователь поймет, что это было сделано 3 миллиона раз. Будет лучше, если вы перед каждым разом будете указывать число. Теперь это рука на голове. Как динамически сделать такое количество чисел? Языки программирования придумали для этого простые решения. Это цикл. С помощью циклов мы можем легко повторять одну и ту же задачу столько раз, сколько захотим.
for (let i = 1; i <= 3000000; i++) {
console.log(i, 'We love Bangladesh');
}
Теперь все проблемы решены. Циклы значительно облегчают нам работу по повторению. Предположим, что блок Carly Brackett в цикле — это новый js-файл. Мы можем написать здесь любой правильный js-код. Но помните, что код внутри этого блока будет выполняться несколько раз.
В JavaScript существует в основном 3 типа циклов. Затем количество циклов увеличилось, чтобы облегчить выполнение различных задач. Даже если существует несколько циклов IP, проблему можно решить с помощью любого одного цикла.
цикл for
- диапазон
- for in
- for of
цикл while
делать цикл while
Цикл for
С помощью цикла for мы можем выполнять два вида работы: while и do while. Почему цикл for появился именно сейчас, какова его функция? Возьмем наш предыдущий пример. Здесь клиент попросил напечатать 3 миллиона раз. Это означает, что я знаю свой диапазон. Я знаю свою начальную точку и знаю, где остановиться. В этом случае мы всегда будем использовать цикл for. Это означает, что мы будем использовать цикл for в случаях, когда мы знаем начальную и конечную точки. Опять же, существует 3 типа циклов внутри цикла for. Один из них связан с диапазоном, который я видел. Другой for in, который мы можем использовать на массивах или объектах. Мы можем работать с использованием in, которое не обязательно должно давать диапазон. Мы увидим это позже. Еще один — цикл for. Он стал легко работать после итераторов. Он также используется для работы с массивами или любыми итераторами, о чем мы поговорим позже. Это будет очень полезно, когда мы будем работать с асинхронными данными.
Петля While
С помощью цикла while мы также можем делать for, делать while. Зачем он нужен, какова его функция? Предположим, клиент говорит нам запустить цикл случайным образом. Нет такого, что нужно запускать от 1. Будет просто случайное число, а рядом с ним слова «We love Bangladesh». Нет никакого описания того, как долго нужно выполнять цикл. И снова бесконечный цикл не может быть выполнен. Клиент сказал, что вы выполняете задание. Моя печать остановится всякий раз, когда число непрерывно достигнет 71. Следующий пример будет более понятен для вас:
while (true) {
let num = Math.ceil(Math.random() * 100);
console.log(num, 'We love Bangladesh');
if (num === 71) break;
}
Разница с циклом for в том, что цикл for состоял из 3 частей. Инициализация, условие, увеличение/уменьшение. А цикл while имеет только одну часть — условие. А условие означает либо true, либо false. Это означает, что мы будем использовать цикл while, когда я не знаю диапазон, а только условие.
Цикл Do While
Но в цикле Do While мы не можем сделать for или do while. Это особый тип цикла. Почему он используется? Предположим, что в примере цикла while условие false, а не true. Тогда он не покажет результат даже один раз. Я хочу, чтобы на выходе хотя бы один раз было показано true или false. В этом случае мы используем цикл do while. Это также возможно с помощью цикла while. Но это можно сделать немного лучше с помощью doo while. Рассмотрим пример.
do {
console.log('It will run at least once');
} while (false);
Хотя его условие ложно, он покажет вывод хотя бы один раз. В этом и заключается концепция данного цикла.
Массив
Одна из самых игнорируемых структур данных и одна из самых мощных структур данных. Используя массивы, мы можем создавать множество сложных структур данных. Например, граф, куча, стек, очередь. Массив — это очень мощная и идеальная структура данных для работы с 2/3 lakh данных. Вопрос в том, зачем нужен массив и какова его функция? Мы хотим хранить имена некоторых людей. Мы можем сделать это с помощью переменных.
const name1 = 'Rayhan';
const name2 = 'Alvi';
const name3 = 'Anik';
const name4 = 'Arjun';
const name5 = 'Ayman';
Теперь я хочу преобразовать эти имена в нижний регистр. Для этого нам нужно захватить и преобразовать каждое из них.
console.log(name1, name1.toLowerCase());
console.log(name2, name2.toLowerCase());
console.log(name3, name3.toLowerCase());
console.log(name4, name4.toLowerCase());
console.log(name5, name5.toLowerCase());
Теперь вместо 5 имен могло быть 5 лакхов имен. Если вам придется перехватывать и преобразовывать каждое из них, то это станет невозможным делом. Для этого нам нужен способ поместить все имена в переменную. Теперь поместите их в переменную.
const persons = 'Rayhan, Alvi, Anik, Arjun, Ayman';
Теперь проблема в том, что все они превращаются в одну большую строку. Как разделить их? Давайте хранить отдельно.
const persons = 'Rayhan', 'Alvi', 'Anik', 'Arjun', 'Ayman';
Но теперь, когда мы захотим запустить программу, мы получим очень большую ошибку. Для решения этой проблемы у нас есть структура данных, называемая массивом. []
Просто поставив что-то перед и после примера выше, мы получим массив.
const persons = ['Rayhan', 'Alvi', 'Anik', 'Arjun', 'Ayman'];
Как извлечь данные из массива? Каждый элемент массива имеет номер позиции. Он называется индексом. Индекс начинается с 0. Затем индекс 1-й позиции равен 0, индекс 2-й позиции равен 1, а индекс 3-й позиции равен 2. Затем мы получаем имя массива и получаем число. Преимущество получения чисел в том, что мы можем легко вычислять здесь. И в этом сила массивов. Теперь давайте посмотрим, как извлечь данные из массива.
const persons = ['Rayhan', 'Alvi', 'Anik', 'Arjun', 'Ayman'];
console.log(persons[0]);
console.log(persons[1]);
console.log(persons[2]);
console.log(persons[3]);
console.log(persons[4]);
Таким образом мы можем извлечь все имена. Теперь здесь все выглядит точно так же, только индекс другой. Это означает, что одна и та же работа выполняется снова и снова. Поэтому здесь мы можем выполнить цикл.
const persons = ['Rayhan', 'Alvi', 'Anik', 'Arjun', 'Ayman'];
for (let i = 0; i < 5; i++) {
console.log(persons[i]);
}
Теперь, если запустить программу, то будет видно, что все имена будут напечатаны красиво. Здесь возникает проблема. Мы добавим еще два имени, чтобы понять проблему.
const persons = ['Rayhan', 'Alvi', 'Anik', 'Arjun', 'Ayman', 'Ayuub', 'Bidyut'];
for (let i = 0; i < 5; i++) {
console.log(persons[i]);
}
Теперь, если запустить программу Ayman
, то цикл остановится, как только его увидят. Поскольку диапазон моего цикла задан индекс должен быть меньше 5. Для решения этой проблемы мы persons.length
можем динамически заменить 5. Тогда массив будет динамически обновляться по мере увеличения длины. Теперь, если мы сделаем первый пример с массивом и циклом, как это будет выглядеть?
const persons = ['Rayhan', 'Alvi', 'Anik', 'Arjun', 'Ayman', 'Ayuub', 'Bidyut'];
for (let i = 0; i < 5; i++) {
console.log(students[i], students[i].toLowerCase());
}
Тогда вы сможете понять, насколько мощным инструментом является массив. Циклы тесно связаны с массивами. С помощью этих массивов и циклов мы можем выполнять множество задач легко и за меньшее время.
Какие типы данных мы можем хранить в массиве? Почти все языки программирования имеют некоторые ограничения на хранение данных в массивах. И только один тип данных может храниться в массиве. В этом отношении JavaScript предоставил полную свободу. В JavaScript можно хранить данные любого типа. Даже данные разных типов могут храниться в массиве. Мы сможем понять это, если посмотрим немного вниз.
const nums = [1, 2, 3, 4, 5, 6];
const bools = [true, true, false, false];
const nulls = [null, null, null];
const undefineds = [undefined, undefined, undefined];
const arrayOfArray = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];
const mixed = [true, null, 'Str', 5, [12, 2, 4]];
Объекты и функции также могут храниться в массивах. Поскольку мы еще не обсуждали объекты и функции, мы не показывали их здесь. Массив может хранить данные разных типов, но мы будем хранить в массиве только данные одного типа. Причина в том, что, предположим, вы создали массив имен студентов. Теперь, если вы поместите туда их адрес, номер телефона, то будет трудно найти имя. Поэтому данные одного типа должны храниться в массиве.
Массивы обладают некоторыми функциональными возможностями. Мы можем думать о массиве как о базе данных. База данных в памяти. Где мы можем создавать данные, читать их, обновлять при необходимости и удалять при желании. Вся эта операция называется CRUD — операция создания, чтения, обновления, удаления. CRUD — это функция всех структур данных в мире. Можно еще немного поговорить о массивах. Но для обсуждения массивов нам нужно сначала поговорить об объектах.
Объект
В массив мы ввели имена некоторых студентов. Но теперь, если мы хотим хранить такую информацию, как их электронная почта, возраст и присутствуют ли они в текущем классе, возникает проблема с массивом. Попробуем разобраться, в чем проблема.
const student = ['Abu', 'Rayhan', 'rayhan@example.com', 25, true];
sendEMail(students[0]);
function sendEmail(email) {
console.log('Sending Email to ', email);
}
Теперь мы видим, в чем здесь может быть проблема. На первый взгляд невозможно определить, какой тип информации какой. Это означает, что код не читабелен. Когда мы собираемся отправить кому-то электронное письмо, нам нужно запомнить, сколько цифр индексируют эту информацию. Итак, вот 5 данных, которые можно как-то запомнить. Если их будет 5000, то запомнить будет очень сложно. Чтобы преодолеть эту проблему, мы попробуем написать их по-другому.
const student = {
firstName: 'Abu',
secondName: 'Rayhan',
email: 'rayhan@example.com',
age: 25,
attend: true,
};
sendEMail(students.email);
function sendEmail(email) {
console.log('Sending Email to ', email);
}
Даже если некоторые тексты написаны больше, код можно легко прочитать, чтобы понять, какая информация где находится. Теперь мне больше не нужно запоминать индекс. Просто поставьте точку (.) в конце имени переменной. Это гораздо более читабельно, гораздо более информативно, чем раньше.
Теперь мы можем хранить информацию о многих студентах в массиве, если захотим. Как это сделать, давайте посмотрим.
const student1 = {
firstName: 'Abu',
secondName: 'Rayhan',
email: 'rayhan@example.com',
age: 25,
attend: true,
};
const student2 = {
firstName: 'Alvi',
secondName: 'Chowdhury',
email: 'alvi@example.com',
age: 25,
attend: true,
};
const student3 = {
firstName: 'Akib',
secondName: 'Ahmad',
email: 'akib@example.com',
age: 25,
attend: true,
};
const allStudents = [student1, student2, student3];
for (let i = 0; i < allStudents.length; i++) {
sendEmail(allStudents[i].email);
}
function sendEmail(email) {
console.log('Sending email to', email);
}
Мы создадим различные объекты для каждого студента. Затем мы будем хранить каждый объект в массиве. На этом примере вы также доказали, что объекты можно хранить в массивах. Теперь я хочу отправить одно и то же письмо всем студентам вместе. В этом случае мы можем легко отправить письмо всем сразу, как показано в приведенном выше коде, выполнив цикл по нашему массиву. Запустив цикл, сначала нужно взять данные с индексом массива. После этого, в соответствии с правилами объекта, ставим (.), а затем указываем имя свойства, и работа закончена. Вы увидели небольшой пример того, как мы можем сделать программы динамичными, комбинируя массивы и объекты. Делайте это снова и снова, когда будете создавать более крупные приложения.
Функции
Функция, которую мы создаем, работает очень похоже на цикл. Мы используем циклы, чтобы делать одно и то же снова и снова. Мы также будем использовать функции, чтобы делать одно и то же снова и снова. Почему же мы используем функции для создания циклов?
Функции мы можем использовать в разных местах по своему усмотрению. Я могу вызывать функцию так, как мне нравится. Мы можем использовать функции повторно, потому что у функций есть имя. Но у цикла нет имени. Поэтому я не могу использовать цикл там, где захочу. Если цикл начнется снова, я должен либо прервать его, либо позволить ему продолжаться до тех пор, пока цикл не закончится. У нас нет контроля над циклом. Но мы можем использовать функцию в разных местах в соответствии с нашими потребностями. Мы можем управлять в соответствии с нашими потребностями. Если я возьму несколько строк из предыдущего примера
for (let i = 0; i < allStudents.length; i++) {
// sendEmail(allStudents[i].email);
console.log('Sending email to', allStudents[i].email);
}
// function sendEmail(email) {
// console.log('Sending email to', email);
// }
Мы могли бы сделать то же самое без написания функций. Но строка внутри цикла не будет работать нигде вне цикла. Но функции можно вызывать где угодно. Опять же, предположим, что мне нужно полное имя в другом месте, стоит ли мне снова продолжать этот цикл. Нет, мы сделаем это с помощью функций. В данном случае мы используем встроенную функцию.
allStudents.forEach((item) => console.log('Email ', item.email));
allStudents.forEach((item) =>
console.log('Full Name ', item.firstName, item.secondName)
);
forEach
В данном случае мы использовали функцию вместо повторения цикла. Самое большое преимущество функции в том, что ее можно использовать несколько раз в любом месте.
Когда использовать функцию и цикл? Функции используются, когда мы выполняем одну и ту же работу в двух разных местах. А если в одном месте, то в цикле. Например, если мы отправляем электронное письмо, и нам нужно, чтобы в письме было полное имя, мы можем сделать это с помощью цикла. Но если мы отправляем письмо в одном месте, а в другом месте нам нужно полное имя для создания списка студентов, то цикл не будет работать. Нам нужно использовать функцию Сначала это будет очень сложно понять. Если вы будете практиковаться медленно, это закрепится в вашей голове.
Правила написания функций приведены ниже:
function nameOfFunction() {
console.log('Hello', 'Bipon');
}
nameOfFunction(); // Hello Bipon
nameOfFunction(); // Hello Bipon
nameOfFunction(); // Hello Bipon
Теперь каждый раз, когда я вызываю эту функцию, она выдает один и тот же результат. Если нам нужен один и тот же вывод в разных местах, то мы создадим функцию, подобную этой. Теперь я хочу задать имя динамически. Имя, которое я введу, будет там. Для этого нам нужно взять переменную внутри круглой скобки. Это называется параметром. Давайте посмотрим на это.
function nameOfFunction(name) {
console.log('Hello', name);
}
nameOfFunction('Bipon'); // Hello Bipon
nameOfFunction('Fahim'); // Hello Fahim
nameOfFunction(); // Hello undefined
Когда мы вызываем функцию, мы поместим наше имя в качестве аргумента вместо этого параметра. Параметры — это переменные, которые вы передаете при написании функции. А аргумент — это то, что вы передаете в виде значения при вызове функции. Если вы не сядете сейчас, то появится undefined
. Здесь мы можем сделать простую задачу, если пользователь не укажет имя, то мы можем показать ему сообщение, чтобы он назвал имя. Средствами можно обработать ошибку.
function nameOfFunction(name) {
if (!name) {
console.log('Please provide your name');
} else {
console.log('Hello', name);
}
}
nameOfFunction('Bipon'); // Hello Bipon
nameOfFunction('Fahim'); // Hello Fahim
nameOfFunction(); // Please provide your name
Надеюсь, этот пример будет понятен всем. Посмотрите еще один пример того, зачем нам нужны функции. Предположим, мы хотим сгенерировать случайное число от 1 до 10. Тогда напишите формулу для генерации случайных чисел.
const randomNumber = Math.floor(Math.random() * 10);
Теперь, если вы хотите получить число от 1 до 100
const randomNumber = Math.floor(Math.random() * 100);
Это должно быть написано вот так. Теперь вместо того, чтобы писать так много раз, мы сделаем это функцией.
function generateRandomNumber(max) {
const randomNumber = Math.floor(Math.random() * max);
return randomNumber;
}
console.log(generateRandomNumber(10));
console.log(generateRandomNumber(100));
console.log(generateRandomNumber(1000));
Теперь я могу генерировать случайные числа столько раз, сколько захочу. Теперь я хочу сгенерировать случайное число между двумя числами.
function generateRandomNumber(min, max) {
const randomNumber = Math.floor(Math.random() * min + (max - min));
return randomNumber;
}
console.log(generateRandomNumber(5, 10));
console.log(generateRandomNumber(85, 100));
Затем поймите, как функции облегчают нашу работу.
Выражение и утверждение
Прежде чем мы поймем это, давайте рассмотрим несколько примеров
const name1 = 'Rayhan'; // Statement
const name2 = 'Alvi'; // Statement
const name3 = 'Anik'; // Statement
const name4 = 'Arjun'; // Statement
const name5 = 'Ayman'; // Statement
const students = [
'Rayhan',
'Alvi',
'Anik',
'Arjun',
'Ayman',
'Ayuub',
'Bidyut',
]; // Statement
console.log(students[0]); // Expression
console.log(students[1]); // Expression
console.log(students[2]); // Expression
console.log(students[3]); // Expression
console.log(students[4]); // Expression
for (let i = 0; i < students.length; i++) {
console.log(students[i], students[i].toLowerCase()); // Expression
} // Statement
name1.sendEmail(); // Expression
name2.sendEmail(); // Expression
name3.sendEmail(); // Expression
name4.sendEmail(); // Expression
name5.sendEmail(); // Expression
const nums = [1, 2, 3, 4, 5, 6]; // Statement
const bools = [true, true, false, false]; // Statement
const nulls = [null, null, null]; // Statement
const undefineds = [undefined, undefined, undefined]; // Statement
const arrayOfArray = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]; // Statement
const mixed = [true, null, 'Str', 5, [12, 2, 4]]; // Statement
const student1 = {
firstName: 'Abu',
secondName: 'Rayhan',
email: 'rayhan@example.com',
age: 25,
attend: true,
}; // Statement
const student2 = {
firstName: 'Alvi',
secondName: 'Chowdhury',
email: 'alvi@example.com',
age: 25,
attend: true,
}; // Statement
const student3 = {
firstName: 'Akib',
secondName: 'Ahmad',
email: 'akib@example.com',
age: 25,
attend: true,
}; // Statement
const allStudents = [student1, student2, student3]; // Statement
for (let i = 0; i < allStudents.length; i++) {
sendMail(allStudents[i].email); // Expression
} // Statement
function sendMail(email) {
console.log('Sending email to', email);
} // Statement
allStudents.forEach((item) => console.log('Email ', item.email)); // Expression
allStudents.forEach((item) =>
console.log('Full Name ', item.firstName, item.secondName)
); // Expression
function nameOfFunction(name) {
if (!name) {
console.log('Please provide your name');
} else {
console.log('Hello', name);
}
} // Statement
nameOfFunction('Murshed'); // Expression
nameOfFunction('Fahim'); // Expression
nameOfFunction(); // Expression
function generateRandomNumber(min = 1, max) {
const randomNumber = Math.floor(Math.random() * min + (max - min)); // Statement
return randomNumber; // Expression
} // Statement
console.log(generateRandomNumber(5, 10)); // Expression
Основное различие между Expression и Statement заключается в том, что Expression в конце концов что-то возвращает, производит данные и где-то их хранит. Как таковой вызов функции является разновидностью выражения. А утверждение не производит никаких данных, не может быть сохранено где-либо, ничего не возвращает. Запись функции — это утверждение, а вызов функции — это выражение. Потому что функция записи ничего не возвращает, пока ее не вызовут. Опять же, если функция стрелки записана как выражение, то она хранится в переменной.
Где использовать массив и где использовать объект
Там, где термины имеют единственное число, мы будем использовать object. Во множественном числе мы будем использовать Array. Например, один телефон — объект, много телефонов — массив, человек — объект, люди — массив, член — объект, члены — массив. Объекты — это информация о ком-то или о чем-то. Если есть более одного человека или более одного объекта, мы будем использовать массив. Просто имейте это в виду. Больше не путайте массивы с объектами в жизни.
Есть определенные моменты, на которые следует обратить особое внимание, чтобы хорошо освоить JavaScript
- Массивы
- Объекты
- Функции и функциональное программирование
- Основы ООП