Wyrażenia

Plansza interaktywna listopad 2014

URL:
http://www.plotkarka.eu/PI/js/expressions.html
Autor:
Radosław Kowaluk

Podstawowe wyrażenia

PrimaryExpression :
this, Identifier, Literal, ArrayLiteral, ObjectLiteral, ( Expression )

Termin this

Słowo kluczowe this, zwraca wartość kontekstu wywołania.

Identyfikator - http://www.plotkarka.eu/Pi/js/conlex.html

Literały - http://www.plotkarka.eu/Pi/js/conlex.html

Literał tablicy

ArrayLiteral :
[ Elisionopt ] [ ElementList ] [ ElementList , Elisionopt ]
ElementList :
Elisionopt  AssignmentExpression ElementList , Elisionopt  AssignmentExpression
Elision :
, Elision ,

Literały tablicy

Literał obiektu

ObjectLiteral :
{}, {PropertyNameAndValueList}, {PropertyNameAndValueList ,}
PropertyNameAndValueList :
PropertyAssignment, PropertyNameAndValueList , PropertyAssignment
PropertyAssignment :
PropertyName : AssignmentExpression
get PropertyName ( ){FunctionBody}
set PropertyName (PropertySetParameterList){FunctionBody}
PropertyName :
IdentifierName, StringLiteral, NumericLiteral
PropertySetParameterList :
Identifier

Nawiasy

Grouping Operator :
( Expression )

Literały obiektu i nawiasy

Wyrażenia lewostronne

MemberExpression :
PrimaryExpression FunctionExpression MemberExpression [Expression] MemberExpression . IdentifierName new MemberExpression Arguments

Operatory pamięci - umożliwiają dostęp do właściwości lub metod obiektu

MemberExpression.IdentifierName
CallExpression.IdentifierName

Operator new

NewExpression : new NewExpression

Wywołanie funkcji

CallExpression : MemberExpression Arguments

Lista argumentów

NewExpression : new NewExpression

Wyrażenia funkcyjne

MemberExpression : FunctionExpression

Operator new

Wyrażenia postfix

PostfixExpression :
LeftHandSideExpression
LeftHandSideExpression [no LineTerminator here] ++
LeftHandSideExpression [no LineTerminator here] --

Operator postinkrementacji ++ - zwraca argument i powiększa go o 1

Operator postdekrementacji -- - zwraca argument i pomniejsza go o 1

Operatory jednoargumentowe

UnaryExpression :
PostfixExpression
delete UnaryExpression void UnaryExpression typeof UnaryExpression ++ UnaryExpression -- UnaryExpression + UnaryExpression - UnaryExpression ~ UnaryExpression ! UnaryExpression

Wyrażenia postfix i funkcja anonimowa

Operator delete - usuwa właściwość obiektu lub element tablicy

Operator void - zwraca wartość undefined

Operator typeof - zwraca typ argumentu

Operator preinkrementacji ++ - zwraca argument powiększony o 1

Operator predekrementacji -- - zwraca argument pomniejszony o 1

Operator + - zwraca argument

Operator - zwraca liczbę przeciwną do argumentu

Operator negacji bitowej ~

Operator negacji logicznej !

Operatory jednoargumentowe

Operatory multiplikatywne

MultiplicativeExpression :
UnaryExpression; MultiplicativeExpression * UnaryExpression; MultiplicativeExpression / UnaryExpression; MultiplicativeExpression % UnaryExpression

Zastosowanie operatora * - mnożenie

Zastosowanie operatora / - dzielenie

Zastosowanie operatora % - modulo

Operatory addytywne

AdditiveExpression :
MultiplicativeExpression; AdditiveExpression + MultiplicativeExpression; AdditiveExpression - MultiplicativeExpression

Operator dodawania + dodawanie i konkatenacja

Operator odejmowania - odejmowanie

Zastosowanie operatorów do liczb

Operatory multiplikatywne mają wyższy priorytet od addytywnych

Operatory dwuargumentowe

Operatory bitowe

ShiftExpression :
AdditiveExpression; ShiftExpression << AdditiveExpression; ShiftExpression >> AdditiveExpression; ShiftExpression >>> AdditiveExpression

Operator << - przesunięcie bitowe w lewo

Operator >> - przesunięcie bitowe w prawo

Operator >>> - przesunięcie bitowe w prawo bez znaku

BitwiseANDExpression :
EqualityExpression
BitwiseANDExpression  & EqualityExpression
BitwiseXORExpression :
BitwiseANDExpression
BitwiseXORExpression  ^ BitwiseANDExpression
BitwiseORExpression :
BitwiseXORExpression
BitwiseORExpression |BitwiseXORExpression

Operator & - iloczyn bitowy

Operator ^ - różnica bitowa

Operator | - suma bitowa

Operatory bitowe

Operatory relacji

RelationalExpression :
ShiftExpression; RelationalExpression < ShiftExpression; RelationalExpression > ShiftExpression; RelationalExpression <= ShiftExpression; RelationalExpression >= ShiftExpression; RelationalExpression instanceof ShiftExpression; RelationalExpression in ShiftExpression

Operator mniejsze-niż ( < )

Operator wieksze-niż ( > )

Operator mniejsze-niż-lub-równy ( <= )

Operator wieksze-niż-lub-równy ( >= )

Algorytmy relacji

Operator instanceof - sprawdza typu obiektu

Operator in - sprawdza czy własność jest w obiekcie

Operatory relacji

Operatory równości

EqualityExpression :
RelationalExpression; EqualityExpression == RelationalExpression; EqualityExpression != RelationalExpression; EqualityExpression === RelationalExpression; EqualityExpression !== RelationalExpression

Operator równy ( == )

Operator nierówny ( != )

Algorytmy równości

Operator ściśle równy ( === )

Operator ściśle nierówny ( !== )

Algorytmy ścisłej równości

Operatory specjalne i równości

Operatory logiczne

LogicalANDExpression :
BitwiseORExpression; LogicalANDExpression && BitwiseORExpression
LogicalORExpression :
LogicalANDExpression; LogicalORExpression || LogicalANDExpression

Operator warunkowy

ConditionalExpression :
LogicalORExpression
LogicalORExpression ? AssignmentExpression : AssignmentExpression

Operator warunkowy (? :) - jeśli pierwszy argument jest prawdziwy zwraca drugi argument, jesli nie zwraca trzeci

Operatory logiczne i warunkowy

Operatory przypisania

AssignmentExpression :
ConditionalExpression; LeftHandSideExpression AssignmentOperator AssignmentExpression
AssignmentOperator jeden z
= *= /= %= += -= <<= >>= >>>= &= ^= |=

Przypisanie proste (=) -

Przypisanie złożone (op=) - =op

Operator przecinka ( , )

Expression :
AssignmentExpression; Expression , AssignmentExpression

Operator przecinka ( , ) - zwraca argument po przecinku

Operator przecinka, przypisanie wielokrotne

Pierwszeństwo operatorów

Typ operatora Operator
nawias ()
przecinek ,
przypisania = += -= *= /= %= <<= >>= >>>= &= ^= |=
warunkowy ?:
logiczne "LUB" ||
logiczne "I" &&
bitowe "LUB" |
bitowe "XOR" ^
bitowe "I" &
porównanie == != === !==
relacji < <= > >= in instanceof
przesunięcie bitowe << >> >>>
dodawanie/odejmowanie + -
mnożenie/dzielenie/modulo * / %
negacja/inkrementacja/dekrementacja ! ~ - + ++ -- typeof void delete
nazwa / tworzenie przykładu () new
pamięci . []

Przykład nienormatywny

Wyrażenia