# 연산자

## Content



ActiveReportsJS ```식```은 다음 유형의 연산자를 지원합니다. 연산자의 피연산자는 식이 될 수 있습니다(예: [references](/activereportsjs/docs/v4.1/ReportAuthorGuide/Expressions/references)). 이 섹션은 연산자에 대해 설명하고 사용 사례를 포함하고 있습니다.

### 산술 연산자

산술 연산자는 숫자를 피연산자로 사용하고 단일 숫자 값을 반환합니다. 

* ```+```\: 더하기
* ```-```\: 빼기
* ```*```\: 곱하기
* ```/```\: 나누기
* ```\```\: 정수 나누기 연산자는 피연산자 하나를 두 번째 피연산자가 나눴을 때 남는 나머지를 버립니다.
* ```^```\: 첫 번째 피연산자를 두 번째 피연산자로 거듭제곱한 결과를 반환합니다.
* ```Mod```\: 피연산자 하나를 두 번째 피연산자가 나눴을 때 남는 나머지를 반환합니다.

예를 들어, [고정 레이아웃 보고서 시작하기 데모](/activereportsjs/demos/Reports/GetStartedWithFixedReports/purejs)에서는 다음 식을 사용하여 송장 총액을 계산합니다.

```
{Sum(Quantity * UnitPrice * (1 - Discount))}
```

### 비교 연산자

비교 연산자는 피연산자를 비교하고 비교가 true인지 여부를 기반으로 부울 값을 반환합니다. 

* ```<```\: 왼쪽 피연산자가 오른쪽 피연산자보다 작으면 ```true```를 반환합니다.
* ```<=```\: 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같으면 ```true```를 반환합니다.
* ```>```\: 왼쪽 피연산자가 오른쪽 피연산자보다 크면 ```true```를 반환합니다.
* ```>=```:왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같으면 ```true```를 반환합니다.
* ```=```\: 피연산자가 같으면 ```true```를 반환합니다.
* ```<>```\: 피연산자가 같지 않으면 ```true```를 반환합니다.
* ```Is```\: 왼쪽 피연산자가 일반 문자 및 와일드카드 문자를 포함할 수 있는 오른쪽 문자와 일치하면 ```true```를 반환합니다.
    * ```%```\: 0개 이상의 문자로 구성된 모든 문자열입니다.
    * ```_```\: 단일 문자입니다.
    * ```[ ]```: ```[a-c]```와 같은 범위 또는 ```[faceod]```와 같은 집합 내 모든 단일 문자입니다.
    * ```[^]```\: 범위 내에 없는 모든 단일 문자입니다.
* ```Like```\: 왼쪽 피연산자와 오른쪽 피연산자가 모두 동일한 개체 참조인 경우 ```true```를 반환합니다. 데이터 집합 필드 값이 ```Null```인지 여부를 확인하는 데 유용합니다. 예를 들어, [밴드 보고서 시작하기 데모](/activereportsjs/demos/Reports/GetStartedWithBandedReports/purejs)에서는 다음 식을 사용하여 사진이 없는 직원에게 자리 표시자 그림을 표시합니다.

```{IIF(AvatarUrl Is Null, "https://demodata.grapecity.com/images/contoso/EmployeePhotos/no-photo.jpg", "https://demodata.grapecity.com" + AvatarUrl)}```

### 문자열 연산자

 ```+``` 및 ```&``` 연산자는 두 문자열 값을 함께 연결하여 두 피연산자 문자열의 논리합인 다른 문자열을 반환합니다. [보간 구문에서는 거의 필요하지 않습니다](/activereportsjs/docs/v4.1/ReportAuthorGuide/Expressions#interpolation-syntax).

### 논리 연산자

논리 연산자는 ```부울``` 값과 함께 사용됩니다.

* ```And```\: 피연산자 두 개가 ```true```이면 ```true```를 반환합니다.
* ```Not```\: 피연산자가 \`\`\`true\`\`이면 ```false```를 반환하고, 피연산자가 \`\`\`false\`\`이면 \`\`\`true\`\`를 반환합니다.
* ```Or```\: 두 피연산자 중 하나가 ```true```이면 ```true```를 반환합니다.
* ```Xor```\: 피연산자 중 하나가 ```true```이면 ```true```를 반환합니다. 피연산자 두 개가 ```true``` 또는 ```false```이면 ```false```를 반환합니다.
* ```AndAlso```\: 왼쪽 피연산자를 평가하여 ```false```이면 처리를 중단하고 ```false```를 반환합니다. 그러지 않으면 오른쪽 피연산자를 평가하고 ```true```이면 ```true```를 반환합니다.
* ```OrElse```\: 왼쪽 피연산자를 평가하여 ```true```이면 처리를 중단하고 ```true```를 반환합니다. 그러지 않으면 오른쪽 피연산자를 평가하고 ```true```이면 ```true```를 반환합니다.

### 비트 단위 연산자

비트 단위 연산자는 피연산자를 10진수가 아니라 비트 집합으로 처리합니다.

* ```<<```\: 이진 표현의 왼쪽 피연산자를 오른쪽 피연산자에 지정된 비트 수만큼 왼쪽으로 이동하고, 오른쪽에서는 이동하지 않습니다.
* ```>>```\: 이진 표현의 왼쪽 피연산자를 오른쪽 피연산자에 지정된 비트 수만큼 오른쪽으로 이동하고, 밖으로 이동한 비트는 버립니다.