++a와 a++의 차이
++는 사실 하나의 함수이며
++a와 a++둘 다 a에 1을 더한다
하지만 1을 더하는 순서에 차이점이 있다.
++a
1을 더한값을 바로 리턴한다
function(a) {
return a+1;
}
a++
변수에 a를 할당하고
변수+1한 값을 리턴한다.
function(a) {
const oldValue = a;
a+1;
return oldValue+1;
}
정리하자면
let b = ++a // a에 1을 더한 뒤 b에 리턴한다
let b = a++ // b에 a를 리턴한 뒤 a에 1을 더한다.
따라서 아래와 같은 상황을 주의해야한다.
let a = 5;
let aa = ++a // 6
a = 5;
let bb = a++ // 5
for구문 안에서는 i 값을 따로 변수에 리턴하지 않으니 ++a나 a++는 차이가 없다
다만 ++a가 더 빠르다
for (let i = 0; i < 10; ++i) // 더 빠름
for (let i = 0; i < 10; i++)
for 구문 로직
1. i 에 값을 할당한다
2. i < 10 검사를 통과하면 for구문 안을 실행한다.
3. for 구문 안을 실행한 뒤 i를 증가시킨다
4. 2번검사를 통과하지 못 할 때까지 2번과 3번을 반복한다. 검사를 통과하지 못하면 for구문을 종료한다.
for (let i = 0; i < 10; ++i) {
//...
}
for과 while의 차이
for은 특별한 기준 없이 매 순회마다 인덱스가 증가한다.
while은 인덱스가 증가하는 기준이 복잡할 때 사용한다.
Reference란
JS에서 reference란 객체를 가리키는 값, 참조이다
이는 객체 자체가 아니라 객체의 위치를 가리치는 말이다.
원시 primitive타입
숫자, 문자열, 불리언, undefined, null, symbol
객체타입
object, array, function
const aa = {};
const bb = aa; // bb는 aa의 reference이다 (bb의 key,value를 변경 = aa변경)
'JS' 카테고리의 다른 글
this와 this를 지정하는 방식 call, apply, bind에 대해 알아보자 (0) | 2024.04.20 |
---|---|
비동기 함수가 예상한 값 대신에 Promise { <pending> }을 반환하는 이유 (0) | 2024.02.19 |
substr와 substring의 차이 (0) | 2023.12.08 |
Regex (0) | 2023.08.25 |
2차배열에서 한 값을 변경할때 전체 줄이 바뀌는 문제 해결법 (0) | 2023.07.29 |