한 걸음씩
[JS][multicampus]Basic syntax of JavaScript 본문
1. 변수
- CamelCase 지향
► let
- 블록 스코프를 갖는 지역 변수를 선언
- 재할당 가능 & 재선언 불가능
- 재할당해야 하는 경우만 let 사용 (반복하면서 값을 업데이트하는 경우)
let number = 10 // 선언 및 초기값 할당
number = 20 // 재할당
let number = 20 // 재선언 불가능 XX
► const
- 블록 스코프를 갖는 지역 변수를 선언
- 재할당 불가능 & 재선언 불가능
- const 사용 권장
const number = 10 // 선언 및 초기값 할당
number = 10 // 재할당 불가능 XX
const number = 20 // 재선언 불가능 XX
const number // 선언 시 반드시 초기값 설정 필요
>> const' declarations must be initialized
► 블록 스코프 (black scope)
- if, for, 함수 등의 중괄호 ({}) 내부를 가리킴
- 블록 스코프를 가지는 변수는 블록 바깥에서 접근 불가능
2. 데이터 타입
► Primitive type (원시 자료형)
- 변수에 값이 직접 저장되는 자료형(불변, 값이 복사)
- 수정 불가, 단지 값을 재할당 하는 것
► Reference type (참조 자료형)
- 객체의 주소가 저장되는 자료형(가변, 주소가 복사)
► null vs undfined
- null : 의도적
- undefined : 자동 할당
- 동일한 역할을 하는 이 두개의 키워드가 존재하는 이유는 js 설계 실수
- null이 원시 자료형임에도 불구하고 타입이 object로 출력되는 이유는 js 설계 당시의 버그를 해결하지 못함
2023.03.08 - [JS] - [JS] Primitive Types
2023.03.13 - [JS] - [JS] JS 판단 내리기
↑ 자세하게 정리해둔 페이지
3. 연산자
할당 연산자 | +=(++) / -=(--) / *= |
비교 연산자 | > / < |
동등 연산자(사용X) | == |
일치 연산자 | === |
논리 연산자 | and(&&) / or(||) / not(!) |
2023.03.13 - [JS] - [JS] JS 판단 내리기
↑ 자세하게 정리해둔 페이지
4. 조건문
2023.03.13 - [JS] - [JS] JS 판단 내리기
↑ 자세하게 정리해둔 페이지
6. 반복문
► while
- 조건문이 참이기만 하면 문장을 계속해서 수행
while (조건문) {
// do something
}
let i = 0
while (i < 6) {
console.log(i)
i += 1
}
>> 0, 1, 2, 3, 4, 5
► for
- 특정한 조건이 거짓으로 판별될 때까지 반복
- const 사용 시 에러 발생 : 최초 정의한 문자를 재할당 하면서 사용하기 때문
for ([초기문]; [조건문]; [증감문]) {
// do something
}
for (let i = 0; i < 6; i++) {
console.log(i)
}
>> 0, 1, 2, 3, 4, 5
► for in
- 객체(object)의 속성을 순회할 때 사용
- 배열도 순회 가능 하지만 인덱스 순으로 순회한다는 보장이 없으므로 권장하지 않음
- '속성 이름'을 통해 반복
for (variable in object) {
statements
}
const fruits = {a: 'apple', b: 'banana'}
for (const key in fruits) {
console.log(key) // a, b
console.log(fruits[key]) // apple, banana
}
► for of
- 반복 가능한 객체(배열, 문자열 등)를 순회할 때 사용
- '속성 값'을 통해 반복
for (variable of object) {
statements
}
const numbers = [0, 1, 2, 3]
for (const number of numbers) {
console.log(number) // 0, 1, 2, 3
}
const fruits = {a: 'apple', b: 'banana'}
for (const fruit of fruits) {
console.log(fruits)
}
>> TypeError : capitals is not iterable
► for in vs for of
- const 사용해도 에러 발생 X : 반복마다 해당 변수를 새로 정의하여 사용하기 때문
const arr = [3, 5, 7]
for (const i in arr) {
console.log(i) // 0 1 2
}
for (const of arr) {
console.log(i) // 3 5 7
}
7. 참고
► NaN을 반환하는 이유
- 숫자로서 읽을 수 없음 (Number(undefined))
- 결과가 허수인 수학 계산신 (Math.sqrt(-1))
- 피연산자가 NaN (7 ** NaN)
- 정의할 수 없는 계산식 (0 * Infinity)
- 문자열을 포함하면서 덧셈이 아닌 계산식 ('가' / 3)
'JS' 카테고리의 다른 글
[JS][udemy] Loops (0) | 2023.03.15 |
---|---|
[JS][udemy][multicampus] JS Object Literals (0) | 2023.03.14 |
[JS][udemy][multicampus] Arrays (0) | 2023.03.13 |
[JS][udemy] JS 판단 내리기 (0) | 2023.03.13 |
[JS][multicampus] History and DOM (0) | 2023.03.13 |