var let const=== : 양쪽에 위치한 값이 같은 경우 true로 평가, 다른 경우 false로 평가
!== : 양쪽에 위치한 값이 다른 경우 true, 같은 경우 false ( ! 느낌표가 부정하는 Not의 의미)
> , <
> 는 좌측에 위치한 값이 더 클 때에만 true로 평가되며, 양쪽의 값이 같거나 우측에 위치한 값이 더 큰 경우 false로 평가
< 는 우측에 위치한 값이 더 클 때에만 true로 평가되며, 양쪽의 값이 같거나 좌측에 위치한 값이 더 큰 경우 false로 평가
>= , <=
>= 는 좌측에 위치한 값이 더 크거나 우측에 위치한 값과 같을 때에만 true로 평가되며, 우측에 위치한 값이 더 큰 경우 false로 평가<= 는 우측에 위치한 값이 더 크거나 좌측에 위치한 값과 같을 때에만 true로 평가되며, 좌측에 위치한 값이 더 큰 경우 false로 평가==는 === 와 같은 기능을 하는 연산자이나, 사용하지 않는것을 권장
!=는 !== 와 같은 기능을 하는 연산자이나, 사용하지 않는것을 권장합니다.
'10' == 10의 결과가 true 로 평가된다.true 또는 false 값으로만 표현 가능'값' 또는 "값" 와 같이 외따옴표, 쌍따옴표나 외따옴표를 쌍으로 값을 묶어 표현.10 처럼 어떠한 따옴표나 콤마 등을 넣지 않고 숫자 값으로 표현.10 !== '10' 두 값은 다른 자료형을 가지고 있기 때문에 같다고 볼 수 없다.{ key1: value, key2: value } 의 형태로 표현하며, value에는 모든 자료형의 값을 담을 수 있다.Objectobj.keyobj['key']const person = {
name: '강승현',
age: 52
};
person.name;
// Print: '강승현'
person['name'];
// Print: '강승현'
person.hobby;
// Print: undefined
obj['key'] 와 같은 표현식을 사용해야 함!const person = {
name: '강승현',
age: 52,
'raising dog': '푸들',
}
person.'raising dog'는 참조가 불가능하지만, person['raising dog']로 하는 경우 참조가 가능const obj = { name: "이용우", age: 28, tech: "Node.js" };
const { name, age, tech, hair } = obj;
console.log(name); // 이용우
console.log(age); // 28
console.log(tech); // Node.js
console.log(hair); // undefined: obj에는 "hair" 프로퍼티가 존재하지 않습니다.
[value, value2, value3] 의 형태로 표현하며, value에는 모든 자료형의 값을 담을 수 있다.Array이다.const names = ['강승현', '홍길동', '김아무개'];
// Index의 최소 값은 0입니다.
names[0];
// Print: '강승현'
names[2];
// Print: '김아무개'
names[3];
// Print: undefined
const arr = ["Node.js", "React", "Spring"];
const [backEnd, frontEnd] = arr;
console.log(backEnd); // Node.js
console.log(frontEnd); // React
NaN === NaN; // false
Number.NaN === NaN; // false
isNaN(NaN); // true
// isNaN()은 현재 값이 NaN이거나, 숫자로 변환했을 때 NaN이 될 경우 true를 반환
isNaN(Number.NaN); // true
// Number.isNaN()은 현재 값이 NaN이어야만 true를 반환
function Hamburger() {
return '함수가 반환할 값';
}
Hamburger(); // 위처럼 정의된 함수는 이렇게 사용가능!
// Print: '함수가 반환할 값'
const vegetable = function() {
return '함수가 반환할 값';
}
vegetable();
function getMyName(myName) {
return myName;
}
getMyName('인자를 넣습니다.'); // 위처럼 정의된 함수는 이렇게 사용
// Print: '인자를 넣습니다.'
Truthy 한 값은 true로 평가되며, Falsy 한 값은 false로 평가되는 연산 방식Falsy 값에는 빈 문자열 '', 숫자 0, 불리언 false, null, undefined, NaN가 해당된다.Falsy 값이 아닌 모든 값은 Truthy 값으로 연산되며 결국 true로 평가된다고 이해Truthy 로 판단되는 자료형이 있음!! (중요!!)Boolean 함수를 사용할 수 있다.Boolean('String') → trueBoolean('') → falseBoolean(undefined) → falseif (condition1) // 명령문1
else // 명령문2
if (condition1) {
// 명령문1
} else {
// 명령문2
}
if (condition1) {
// 명령문1
} else if (condition2) {
// 명령문2
} else if (condition3) {
// 명령문3
} else {
// 명령문4
}
if (condition1) {
// 명령문1
} else {
if (condition2) {
// 명령문2
} else {
if (condition3) {
// 명령문3
} else {
// 명령문4
}
}
}
condition1 && condition2 의 형태로 표현하며, condition1~2는 모든 자료형의 값을 넣을 수 있으며, 불리언 연산이 적용된다.Truthy && Truthy → 결과: TruthyTruthy && Falsy → 결과: Falsy// 예시 1)
const condition1 = "안녕하세요"
const condition2 = true
let result = null;
if (condition1 && condition2)
result = 'Value';
// 예시 2)
const condition1 = "안녕하세요"
const condition2 = true
const result = condition1 && condition2 && 'Value';
result
// Print: 'Value'
// AND 연산자(&&)를 사용할 때 모든 값이 Truthy할 경우 맨 뒤에 있는 값이 result 변수에 할당되는 것을 확인
condition1 || condition2 의 형태로 표현하며, condition1~2는 모든 자료형의 값을 넣을 수 있으며, 불리언 연산이 적용됩니다.Falsy || Truthy → 결과: TruthyFalsy || Falsy → 결과: Falsy let name;
if (condition1)
name = condition1;
else if (condition2)
name = condition2;
else if (condition3)
name = condition3;
else
name = '강승현';
const condition1 = false
const condition2 = null
const condition3 = "이용우"
const name = condition1 || condition2 || condition3 || '강승현';
name
// Print: '이용우'
// OR 연산자(||)를 사용할 때, 가장 먼저 오는 Truthy한 값이 name변수에 할당되는 것을 확인
for (초기화구문; 조건문; 증감문) {
// 명령문
}
// 초기화구문 : for 구문 안에서만 사용될 변수를 선언할 수 있다.
// 조건문 : 조건문에 있는 값이 Falsy한 경우 명령문의 반복을 중단
// 증감문 : 구문이 끝나는 경우 증감문에 선언된 구문이 실행
for (let i = 0; i < 3; i = i + 1)
console.log(i);
// Print: 0
// 1
// 2
// 괄호로 묶인 부분은 조건문의 결과가 Falsy할 때 까지 무한 반복함 ㄷㄷ
- 초기화 구문 실행
let i = 0;구문에 의해 i라는 변수가 선언되며, 이 변수는 for 문 바깥에서 사용할 수 없다.
- 조건문 검사
i는 0이므로i < 3코드를0 < 3으로 볼 수 있으며, 0보다 3이 크므로 이 조건은 true로 평가됩니다.
- 명령문 실행
- 조건문이
true로 평가됐으므로 명령문을 실행해console.log(i);명령어에 의해 i의 현재 값인 0이 출력됩니다.
- 증감문 실행
i = i + 1코드가 실행되며 i 변수의 값은 1이 됩니다.i = 0 + 1와 같습니다.
- 조건문 실행
1 < 3은true이므로 다음 명령문 실행
- 명령문 실행
- 현재
i의 값인1출력
- 증감문 실행
i = i + 1→i = 1 + 1
- 조건문 실행
2 < 3은true이므로 다음 명령문 실행
- 명령문 실행
- 현재
i의 값인2출력
- 증감문 실행
i = i + 1→i = 2 + 1
- 조건문 실행
3 < 3은false이므로 다음 명령문 실행 안함
- 반복문 탈출 !!🚗 🚗
- 조건문이
false이므로 더 이상 반복하지 않습니다.
for (let i = 0; i < 5; i++) {
if (i === 2) break;
console.log(i);
}
// Print: 0
// 1
for (let i = 0; i < 5; i++) {
if (i === 2) continue;
console.log(i);
}
// Print: 0
// 1
// 3
// 4
for (변수선언문 of 반복가능한객체) {
// 명령문
}
const persons = ['강승현', '홍길동', '김아무개'];
for (const person of persons) {
console.log(person);
}
// Print: '강승현'
// '홍길동'
// '김아무개'
for (변수선언문 in 반복가능한객체) {
// 명령문
}
const persons = ['강승현', '홍길동', '김아무개'];
for (const person in persons) {
console.log(person);
}
// Print: 0
// 1
// 2
const persons = ['강승현', '홍길동', '김아무개'];
for (const index in persons) {
const person = persons[index]; // index 사용
console.log(person);
}
// Print: '강승현'
// '홍길동'
// '김아무개'