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

Juyeon Lee·2021년 12월 27일
0

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개의 댓글