Изрази и оператори

Пълен и подробен списък на операторите и изразите също е наличен в това ръководство.

Например: 3 + 4 или x * y .

На свой ред, унарната операция използва един операнд, преди или след оператора:

Например: x ++ или ++ x .

Оператори за присвояване

В резултат на операцията за присвояване на операнда вляво от оператора за присвояване (знакът "=") се задава стойността, която се взема от десния операнд. Основният оператор за присвояване е =, той присвоява стойността на десния операнд на операнда отляво. Така че изразът x = y означава, че на x се присвоява стойността на y.

Съществуват и съставни оператори за присвояване, които се използват за съкращаване на операциите, описани в следната таблица:

Деструктуриране

Сравнителни оператори

Коментар: (=>) не е оператор, а обозначение на функцията Arrow.

Аритметични оператори

Аритметичните оператори използват числа (също литерали или променливи) като свои операнди и връщат единична числова стойност като резултат. Стандартните аритметични оператори са събиране (+), изваждане (-), умножение (*) и деление (/). Когато работят с числа с плаваща запетая, тези оператори работят по същия начин, както работят в повечето други езици за програмиране (имайте предвид, че разделянето на нула връща Infinity). Например:

Побитови (побитови) оператори

Побитови логически оператори

Основната точка на работа на битовите логически оператори е както следва:

  • Операндите се преобразуват в 32-битови цели числа и се представят като последователност от битове (нули и единици). Номерата с повече от 32 бита ще бъдат съкратени. Например следният номер има повече от 32 бита и ще бъде преобразуван в 32 бита:
  • Всеки бит от първия операнд е свързан със съответния бит от втория операнд: първият бит с първия бит, вторият бит с втория и т.н.
  • Посоченият оператор се прилага към всяка двойка битове и крайният резултат се формира малко по бит.

Например двоичното представяне на 9 е 1001, а двоичното представяне на петнадесет е 1111. Резултатите от прилагането на битови логически оператори към тези числа са както следва:

00000000.00001111 = 1111 1111. 11110000

00000000. 0000 1001 = 1111 1111. 1111 0110

Имайте предвид, че всички 32 бита се преобразуват с помощта на побитовия оператор NOT и че стойностите с най-значимия (най-левия) бит, равен на 1, са отрицателни числа (представяне на комплемента на две).

Побитови оператори на смяна

Операторите на битово изместване използват два операнда: първият представлява количеството, което трябва да бъде изместено, а вторият показва броя на битовите позиции, с които първият операнд трябва да бъде изместен. Посоката на работа на смяна се определя от използвания оператор.

Shift операторите преобразуват своите операнди в 32-битови цели числа и връщат резултат от същия тип като левия операнд.

Операторите на смяна са изброени в следващата таблица.

Логически оператори

Логическите оператори обикновено се използват с логически (логически) стойности; тяхната възвръщаема стойност обаче също е булева. Въпреки това, && и || всъщност връща стойността на един от операндите, така че ако тези оператори се използват с не-булеви стойности, тяхната върната стойност също може да е не-булева. Логическите оператори са описани в следващата таблица.

Примери за изрази, които могат да бъдат преобразувани в false, са: null, 0, NaN, празен низ (") или undefined.

Следващият код демонстрира примери за използване на оператора && (логически И).

Следващият код демонстрира примери за използване на оператора ||. (логично ИЛИ).

Следващият код показва примери за използване на оператора! (логично НЕ).

Съкратена оценка

Тъй като булевите изрази се изчисляват отляво надясно, те се тестват за оценка на пряк път, като се използват следните правила:

  • false && anything - стенография с фалшив резултат.
  • вярно || каквото и да било - стенография, оценяваща на истина.

Логическите правила гарантират, че дадените изчисления са винаги правилни. Обърнете внимание, че частта „всичко“ от горните изрази не се оценява, като по този начин се избягват странични ефекти от оценката на тази част.

Низови оператори

В допълнение към операторите за сравнение, които могат да се използват със низови стойности, операторът (+) ви позволява да обединявате два низа, като същевременно връщате трети низ, който е конкатенацията на два операндни низа:

Стенографският оператор за присвояване + = може също да се използва за обединяване (обединяване) на низове:

Условен (трикратен) оператор

val1 и val2 трябва да върнат нещо, поради което продължаването или прекъсването не може да се използва в тази конструкция

Ако условието е вярно, тогава изразът се оценява на val1. В противен случай операторът е val2. Можете да използвате условния оператор във всички случаи, когато може да се използва стандартният оператор.

Този израз присвоява стойността "възрастен" на състоянието на променливата, ако възрастта е 18 или повече. В противен случай на променливата на състоянието се присвоява стойността "второстепенен".

Оператор със запетая

Операторът запетая (,) просто оценява двата операнда и връща стойността на последния операнд. Този оператор се използва главно в цикъла for, което ви позволява едновременно да актуализирате стойностите на няколко променливи всеки път, когато цикълът бъде предаден.

Например, ако a е двумерен масив, всеки ред от който съдържа 10 елемента, следният код използва оператора запетая, за да увеличи две променливи едновременно. Този код показва стойностите на диагоналните елементи на масива:

Унарни оператори

Унарна операция - операция само с един операнд.

Операторът delete изтрива обект, свойство на обект или елемент от масив при посочения индекс. Синтаксис на оператора:

където objectName е името на обекта, свойството е свойство на обекта, а index е цяло число, указващо позицията (номер на позиция) на елемента в масива.

Четвъртият случай на употреба ви позволява да изтриете свойство на обект, но е разрешено само с .

Можете да използвате оператора delete, за да изтриете неявно декларирани променливи, но не можете да изтриете променливи, декларирани с var, като го използвате. .

След използване на оператора delete, свойството на елемента се променя на undefined. Операторът за изтриване връща true, ако операцията е възможна; операторът връща false, ако операцията не може да бъде извършена.

Премахване на елементи от масив

Премахването на елемент от масив не влияе върху дължината на масива. Например, ако премахнете [3], елемент a [4] ще остане [4], a [3] ще стане недефиниран.

Ако искате елементът да остане в масива, но има стойността undefined, тогава използвайте undefined ключовата дума вместо оператора delete. В следващия пример дърветата [3] са зададени на undefined, но елементът остава в масива:

Тип оператор

Операторът typeof се използва по следния начин:

Операторът typeof връща низ, указващ типа на неизчисления операнд. Стойността на операнда може да бъде низ, променлива, манипулатор или обект за въвеждане. Скобите около операнда не са задължителни.

Да предположим, че дефинирате следните променливи:

Операторът typeof връща следните резултати за тези променливи:

За дескриптори true и null операторът typeof връща следните резултати:

За числа и низове операторът typeof връща следните резултати:

За свойства операторът typeof връща типа стойност на даденото свойство:

За методи и функции операторът typeof връща следните резултати:

За вградени обекти операторът typeof връща следните резултати:

Оператор на празнота

Операторът void се използва по всеки от следните начини:

Можете да използвате оператора void, за да посочите, че операндът на израза е хипертекстова връзка. В този случай изразът се обработва, но не се зарежда в текущия документ.

Кодът по-долу създава хипертекстова връзка, която потвърждава подаването на формуляра, когато потребителят щракне върху него:

Релационни оператори

Релационният оператор сравнява своите операнди и връща резултата от сравнението като булева стойност.

В оператор

Операторът in връща true, ако посоченият обект има посоченото свойство. Синтаксис на оператора:

където propNameOrNumber е низ или числов израз, представляващ името на свойството или индекса на масива, а objectName е името на обекта.

Някои примери за начини за използване на оператора in:

Екземпляр на оператор

Операторът instanceof връща true, ако посоченият обект е обект от посочения тип. Синтаксисът му е:

където objectName е името на обекта, чийто тип искате да сравните с objectType, а objectType е типът на обекта, например Date или Array .

Използвайте оператора instanceof, когато трябва да потвърдите типа на обекта по време на изпълнение. Например, когато улавяте изключения, можете да създадете различни програмни преходи за обработка на изключения в зависимост от вида на обработваното изключение.

Например, следният код използва оператора instanceof, за да тества дали theDay е обект Date. Тъй като theDay наистина е обект Date, програмата изпълнява кода, съдържащ се в оператора if .

Приоритет на оператора

Приоритетът на оператора определя реда, в който те се изпълняват при оценяване на израз. Можете да повлияете на приоритета на операторите със скоби.

Таблицата по-долу описва приоритета на операторите от най-високата към най-ниската.

- + ++ -- typeof void delete

Изразът е всеки валиден блок от код, който връща стойност.

Концептуално има два типа изрази: тези, които присвояват стойност на променлива, и такива, които оценяват стойност, без да я присвояват.

Изразът x = 7 е пример за първия тип. Този израз използва оператора =, за да зададе променливата x на 7. Самият израз също е 7.

Код 3 + 4 е пример за израз на втория тип. Този израз използва оператора "+", за да добави числа 3 и 4, без да присвоява резултата на променлива 7.

Основни изрази

Този оператор

Използвайте ключовата дума this, за да сочите към текущия обект. Като цяло това сочи към извикващия, който притежава този метод. Използвайте това по следния начин:

Да предположим, че функцията за проверка проверява свойството стойност на някакъв обект; зададен е обект, както и горната и долната граница на стойността на това свойство:

Можете да извикате функцията за проверка на обработчика на събития onChange за всеки елемент на формуляр, като използвате това, за да насочите към елемента на формуляра, както е показано в следния пример:

Оператор за групиране

Операторът за групиране в скоби () контролира приоритета на оценяване на изрази. Например можете да предефинирате реда - „умножение и деление, след това събиране и изваждане“, така че например събирането да се извършва преди умножението:

Опростен синтаксис за създаване на масиви и генератори

[за (x от y) x] Опростен синтаксис за масиви. (за (x от y) y) Опростен синтаксис за генератори.

Опростените синтаксиси съществуват в много програмни езици и ви позволяват бързо да съберете нов масив, базиран на съществуващ. Например:

Изрази отляво

Стойностите отляво се присвояват стойностите отдясно.

Можете да използвате новия оператор, за да създадете екземпляр на обект от персонализиран тип или един от вградените обекти. Използвайте новия оператор по следния начин:

Ключовата дума се използва за извикване на функции на родителския обект. Това е полезно при класовете да извикате например и конструктора на родителя.

Оператор на удължаване

Операторът за разпространение позволява разширяване на израз на места с много аргументи (за извиквания на функции) или много елементи (за масиви).

Пример: Днес, ако имате масив и искате да създадете нов със съществуващата част на първия, тогава синтаксисът на литералния масив вече не е достатъчен и трябва да напишете императивен (без опции) код, използвайки комбинация от push, splice, concat, и т.н. Но с този оператор кодът става по-кратък:

Операторът работи с извиквания на функции по подобен начин: