한 걸음씩

[JS][multicampus]Basic syntax of JavaScript 본문

JS

[JS][multicampus]Basic syntax of JavaScript

winter17 2023. 3. 14. 11:05

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