반응형

# 자바스크립트 학습

# 연산자

  • 연산의 사전적 의미 : 규칙에 따라 계산하여 값을 구함

## 연산자의 형태

+ - * / %
> >= < <=
== != === !==
콤마(,), typeof, delete, void
instanceof, in, new 등등

## 표현식의 형태

  • 자바 스크립트는 표현식의 연결이다.
1 + 2

var total = 1 + 2;

var value = total / (2+3);

=>
여기서 1 + 2 를 표현식을 평가 한다고 한다.
표현식을 평가하면 반드시! 결과가 반환된다. 이를 평가결과 라고 한다.
1+2의 평가결과는 3

## 할당 연산자

  • 단일 할당 연산자 : = 을 하나만 사용
var result = 1 + 2;
  • 복합 할당 연산자 : = 앞에 연산자를 작성한다.
= 앞에 연산자 작성
+=, -=, *=, /=, %=
<<=, >>=
>>>=, &=, ^=, |=

먼저 = 앞을 연산한 후 할당한다.
var point = 7;
point += 3;

## 해석, 실행 순서

  • 해석 : 자바스크립트 코드를 기계어로 바꾸는  것 (Compile), "엔진이 해석하고(Compile 하고) 실행한다."고 한다.
  • 실행 순서
var result = 1 + 2 + 6;
=>
왼쪽에서 오른쪽으로 실행
= 왼쪽의 표현식 평가
= 오른쪽의 표현식 평가
왼쪽에서 오른쪽으로 평가(1 + 2, 3 + 6)
= 오른쪽 표현식의 평가 결과를 왼쪽 표현식 평가 결과에 할당
var result = 9;

## 산술 연산자

  • 더하기(+) 연산자 : 양쪽의 표현식을 평가, 평가 결과를 더한다.
var value = 1 + 2 + 4;
log(value);
=>
우선 1과 2를 더하고
1과 2를 더한 값인 3에 4를 더한다.
그리고 더한 값인 7을 value 변수에 할당한다.
  • 1 + 5 + "ABC"의 결과
var value = 1 + 5 + "ABC";
log(value);

=>
6ABC
우선 더하기 규칙에 따라 1과 5를 더하여 6이 된다.
이어서 6과 "ABC"를 연결한다.




var two = "2";
var value = 1 + two;
log(value);
log(typeof value);

=>
12
string
일반적으로 number 타입과 string 타입은 계산하는 것은 문법에 맞지 않다.
하지만, 자바스크립트는 이를 "연결하여" 값을 반환한다.
(자바스크립트는 되도록이면 특정한 부분에서 에러가 발생하여 
전체 웹 페이지가 표시되지 않는 것을 방지하려는 경향(특성)이 강함, 이를 반영한 것)

## 숫자로 변환

  • 자바스크립트는 연산 전, 우선 숫자로 변환을 시도한다.
  • 숫자로 변환이 되면 변환 된 값으로 연산을 수행한다.
값 타입 변환 값
Undefined NaN
Null +0
Boolean true : 1, false : 0
Number 변환 전/후 같음
String 값이 숫자이면 숫자로 연산 (단, 더하기(+)는 연결)
var value;
log(10 + value);

=>
NaN
value 값을 선언만 했으므로 undefined
10 + value의 경우 10 + undefined로 NaN 으로 변환


log(10 + null);
log(10 + true);
log(10 + false);

=>
10
11
10
null은 0으로
true은 1로
false은 0으로 변환


log(10 + "123");
log(123 - "23");

=>
10123	// +는 연결
100		// + 외에는 숫자로 변환 시도하여 작업
반응형

+ Recent posts