let,const and var,operators(연산자),operator precedence(연산자 우선순위)

Juyeon Lee·2021년 12월 27일

let,const and var

let, const, var 모두 변수를 선언(delcare)할때 쓴다. let, const는 mordern javascript에서 사용되는 선언 방식이고 var은 예전에 사용하던 선언 방식이다.

여기서 let은 이전에 공부했던 것처럼 변수의 값을 변경할 수 있다.

let age = 30;
age = 31;

이렇게 value를 바꿔줄 수 있다는 것을 mutate the variable,reassign the variable라고 한다. let과 다르게 const는 value를 바꿔줄 수 없다. 그래서 immutable variable이라고 한다.

const birthYear = 1991;
birthYear = 1990;

위 코드처럼 birthYear를 const로 선언한 경우 value를 다른 값으로 바꿔줄 수 없다.

let birthYear;

이런식으로 value를 empty하게 선언하는것도 let에서는 가능한데 const로는 안된다. 그럼 const, let, var 중에 어떤걸 써야 할까? 주로 const를 쓰되 variable 바꿔야 할 일이 꼭 있으면 let으로 쓰고 var로는 절대 쓰지 않아야 한다.

영어 시간은 아니지만 concatenate라는 단어를 새로 배웠다. string을 + 로 결합하는거에 이 단어를 썼다. 결합한다는 뜻이다.

Assignment operators(복합 대입 연산자)

operators에서는 Assignment operators가 항상 헷갈려서 여기에 정리해본다. 한국어로 복합 대입 연산자라고 한다.

let x = 10 + 5; // 15
x += 10; // x = x + 10 = 25
x *= 4 // x = x *4 = 100
x++; // x = x + 1 
x--; // x = x -1 
x--;

Operator precedence(연산자 우선순위)

operator precedence라고 연산자 우선순위라는게 있는데

연산자 우선순위 MDN

이렇게 MDN문서에서 table이라고 되어있는 섹션을 통해서 확인할 수 있다.
Precedence칸에 숫자가 써있는데 숫자가 클수록 그것부터 연산되는 것이다! Associativity라고 left-to-right right-to-left 등의 방향순서도 적혀있다.

예를 들어 이 코드를 살펴보자.

let x,y;
x = y = 25-10-5;
console.log(x,y);

테이블을 살펴보면 -는 13번이고 =는 3번이다. 숫자가 클수록 먼저 연산되므로 빼기부터 연산이 된다. 그럼 x=y=10이 되는데 여기서 =의 Associativity칸을 보면 right-to-left라고 되어있다. 즉 오른쪽에 있는 =부터 연산을 하는것이다. 따라서, y=10이 먼저 되고 그 다음에 x=y이 연산된다.이미 y=10이니까 x=10이 된다. 그래서 결과는 x,y 둘다 10이다.

0개의 댓글