Операторы JavaScript — это блок кода, который выполняет какое-либо действие или задачу. По умолчанию интерпретатор JavaScript выполняет эти операторы один за другим в том порядке, в котором они написаны.
Давайте попробуем понять различные виды операторов в JS ниже.
1. Операторы выражений
Выражения с побочными эффектами считаются операторами-выражениями, такими как операторы присваивания, вызов функций, операторы увеличения и уменьшения, ++ и —, связанные с операторами присваивания и операторами удаления.
let greeting = “Hello “ + name; //assignment statement counter ++; // increment operator which is changing a variable value delete o.x; // deleting a property of an object O cx = Math.cos(x);; // function invocation and assign the value to a variable
2. Составные и пустые операторы
Один оператор может содержать более одного вложенного оператора и считается составным оператором или блоком операторов в JS. Следующие строки действуют как один оператор
{ x = Math.PI; cx = Math.cos(x); console.log(“cos(π) = “ + cx); }
Пустой оператор противоположен составному оператору: он позволяет не включать операторы там, где они ожидаются. вы можете использовать точку с запятой, чтобы вставить пустой оператор в вашу программу.
3. Условное заявление
Операторы, которые заставляют интерпретатор JS выполнять или пропускать другие операторы в зависимости от значения выражения, такого как операторы if и switch.
3.1 Оператор if
основной управляющий оператор, который позволяет JS принимать решения и выполнять операторы условно.
//syntax If (expression) Statement1 else Statement 2 //example if (n === 1) { //curly braces are optional in case of single statement console.log("You have 1 new message."); } else { console.log(`You have ${n} new messages.`); }
оценивается первое выражение. Если полученное значение истинно, выполняется оператор 1. Если выражение ложно, выполняется оператор 2.
3.2 Оператор Switch
Когда значение одного и того же выражения может использоваться для принятия решения между более чем двумя вариантами, для таких случаев JS предоставляет оператор switch.
//Syntax switch(expression) { case label1: statement1; // if expression value === label1 execute statement1 case label2: statement2; // if expression value === label2 execute statement2 … default: default_statement; // optional } //Example: switch(n) { case 1: // Start here if n === 1.(sameness is determined by the === operator) // Execute code block #1. break; // stop here case 2: // Start here if n === 2 // Execute code block #2. break; // Stop here case 3: // Start here if n === 3 // Execute code block #3; break; // Stop here default: // If no case match the value of n // Execute code block #4. }
Если метка default отсутствует, оператор switch полностью пропускает блок кода. Ключевое слово break заставляет интерпретатор перейти к концу оператора switch и продолжить работу с оператором, следующим за ним.
4. Оператор циклов
Операторы, которые повторно выполняют другие операторы, такие как while и for.
4.1 Цикл while
Интерпретатор сначала оценивает выражение. Если значение выражения ложно, то интерпретатор пропускает оператор, служащий телом цикла, и переходит к следующему оператору в программе. Если, с другой стороны, выражение истинно, интерпретатор выполняет оператор и повторяет его.
//Syntax while (expression) { //curly braces are optional in case of single statement //statment or statement block } //Example let count = 0; while(count < 10) { console.log(count); count++; }
4.2 Цикл do/while
Цикл do/while аналогичен циклу while, за исключением того, что выражение цикла проверяется в конце цикла, а не в его начале. вершина. Это означает, что тело цикла всегда выполняется хотя бы один раз.
//Syntax do { //curly braces are optional in case of a single statement //statement / statement block } while (expression); //Example let count = 0; do { console.log(count); count++; } while (count < 10);
4.3 Для цикла
выражение initializer вычисляется один раз перед началом цикла. Выражение test оценивается перед каждой итерацией и определяет, выполняется ли тело цикла. Если тест дает истинное значение, выполняется инструкция, являющаяся телом цикла. Наконец, вычисляется выражение increment.
//syntax for(initialize ; test ; increment) { //curly braces are optional in case of single statement //statement / statement block } //Example: for(let count = 0; count < 10; count++) { console.log(count); }
4.4 Цикл for/of
Цикл for/of работает с повторяемыми объектами. массивы, строки, наборы и карты — это итерируемые объекты в JS. Тело цикла выполняется один раз для каждого элемента итерируемого объекта. Перед каждым выполнением тела цикла очередной элемент массива присваивается переменной element.
//Syntax with example let data = [1, 2, 3, 4, 5, 6, 7, 8, 9], sum = 0; for(let element of data) { sum += element; } // for of with map let m = new Map([[1, "one"]]); for(let [key, value] of m) { key // => 1 value // => "one" }
4.5 Цикл for/in
Инструкция for/in перебирает перечисляемые имена свойств указанного объекта. Чтобы выполнить оператор for/in, интерпретатор JavaScript сначала вычисляет выражение объекта. Если он оценивается как null или undefined, интерпретатор пропускает цикл и переходит к следующему оператору. Теперь интерпретатор выполняет тело цикла один раз для каждого перечисляемого свойства объекта.
//syntax for (variable in object) { //statement / statement block } //Example: for(let p in o) { // Assign property names of o to variable p console.log(o[p]); // Print the value of each property }
5. Заявление о прыжках
Операторы, которые заставляют интерпретатор перейти к другой части программы, например break, return и throw.
5.1 Пометка
Любая инструкция может быть помечена путем добавления перед ней идентификатора и двоеточия: это имя, которое вы можете использовать для ссылки на него в другом месте вашей программы.
//syntax identifier: statement //example mainloop: while(token !== null) { // Code omitted… continue mainloop; // Jump to the next iteration of the named loop(mainloop) // More code omitted… }
5.2 Break
Операция break, используемая отдельно, вызывает немедленный выход из самой внутренней охватывающей инструкции цикла или оператора switch.
5.3 Продолжение
При выполнении оператора continue текущая итерация окружающего цикла завершается и начинается следующая итерация.
//example for(let i = 0; i < data.length; i++) { if (!data[i]) continue; // jump to the next iteration of the loop total += data[i]; }
5.4 Возврат
Инструкция return внутри функции указывает значение вызовов этой функции. Оператор return может появляться только в теле функции. Это синтаксическая ошибка, если он появляется где-либо еще.
//syntax return expression; //Example function square(x) { return x*x; } // A function that has a return statement square(2) // => 4
5.5 Yield
Инструкция yield очень похожа на инструкцию return, но используется только в функциях генератора ES6 для создания следующего значения в сгенерированной последовательности значений без фактического возврата.
// A generator function that yields a range of integers function* range(from, to) { for(let i = from; i <= to; i++) { yield i; } }
5.6 Throw
В JavaScript исключения генерируются всякий раз, когда возникает ошибка времени выполнения, а также всякий раз, когда программа явно выдает ошибку с помощью инструкции throw. Исключения перехватываются оператором try/catch/finally, который описан в следующем разделе.
try/catch/finally
Инструкция try/catch/finally — это механизм обработки исключений в JavaScript.
//syntax try { //Normally, this code runs from the top of the block to the bottom //without problems. But it can sometimes throw an exception, //either directly or with a throw statement. } catch(e) { // The statements in this block are executed if, and only if, the try // block throws an exception. These statements can use the local variable // e to refer to the Error object or other value that was thrown. } finally { // This block contains statements that are always executed, regardless of // what happens in the try block. They are executed whether the try // block terminates: } //example try { // Ask the user to enter a number let n = Number(prompt("Please enter a positive integer", "")); // Compute the factorial of the number, assuming the input is valid let f = factorial(n); // Display the result alert(n + "! = " + f); } catch(e) { // If the user's input was not valid, we end up here alert(e); // Tell the user what the error is }
Следующие шаги
Следующие несколько сообщений станут частью серии, посвященной основам и дополнительным темам JavaScript.
Нажмите здесь, если хотите изучить серию блогов с самого начала.
Если вам понравилась эта история, нажмите кнопку 👏 и поделитесь ею, чтобы другие тоже могли ее найти! Кроме того, не стесняйтесь оставлять комментарии ниже.
Groww Engineering публикует технические анекдоты, новейшие технологии и лучшие способы решения распространенных проблем программирования. Вы можете подписаться здесь, чтобы получать последние обновления.
Мы нанимаем. Посмотреть вакансии здесь.