2023.02.27 TIL

정승원·2023년 3월 11일
0

📌 오늘의 생각

배열과 객체를 통해 규칙성 및 유사한 데이터들을 다룰 수 있게 되었으며, 이러한 개념들을 바탕으로 알고리즘 문제에 적용하여 해결할 수 있을 것으로 기대가 된다.


📒 목차

  • 변수와 상수
  • 예약어
  • 데이터 타입의 종류
  • 배열 (Array)
  • 객체 (Object)

JavaScript

1️⃣ 변수와 상수

✅ 변수와 상수 만들기

🔹 선언 (declaration)

  • 변수 또는 상수의 이름을 알려주는 행위
var a;
let b;
const c;

🔹 할당 (definition)

  • 변수에 데이터를 담아주는 행위
  • 할당된 데이터는 컴퓨터의 메모리에 저장된다
result = 10+20
//result라는 변수에 10+20 라는 데이터가 담겼습니다.

🔹 선언 + 할당

  • ❗자바스크립트 (=) → 할당의 의미 / 같다의 의미X
let result = 20 + 30;

✅ 변수명 주의사항

  • 명사로 짓기 (동사 X)
  • 첫 글자는 숫자 사용 불가능

✅ 변수와 상수의 종류 및 특징

🔹 재선언 여부

  • 변수명을 중복으로 선언할 수 있는가

🔹 재할당 여부

  • 데이터를 수정할 수 있는가

✅ 변수명 짓는 방법

🔹 camelCase

  • 띄어쓰기 대신 대문자 구분

🔹 snake_case

  • 띄어쓰기 대신 언더바 구분

🔹 PascalCase

  • 첫글자 대문자, 띄어쓰기 대신 대문자로 구분

2️⃣ 예약어

  • js 안에서 특별할 의미를 지닌 단어이다
  • 변수로 선언하려하면 에러가 발생한다
  • 변수명을 선언할 때는 예약어를 제외해야 한다
new, 
else,
do,
if,
break,
case,
finally,
catch,
this ...

3️⃣ 데이터 타입의 종류

🔹 String (문자열)

  • “” , ‘’ → 문자열 데이터 표시
  • 문자열 연산에서도 ‘+’ 사용 가능
    - 문자열의 연산은 단어와 단어 사이 이어붙여준다
"Hello " + "World"
-> Hello World

🔹 Number (숫자)

  • 여러가지 연산이 가능하다
  • 산술연산자
    - 숫자타입 데이터 연산의 경우만 정상적인 값 반환
    - 숫자가 아닌 타입으로 연산을 시도할 경우 NaN 반환
"a" * 12  // NaN
"a" - 12  // NaN
"a" / 12  // NaN
"a" % 12  // NaN
  • ❗NaN : Not a Number
  1. 덧셈 : 1 + 2
  2. 뺄셈 : 2 - 1
  3. 곱셈 : 2 * 1
  4. 나눗셈 : 2 / 1
  5. 나머지 : 2 % 1
  • 문자와 숫자 혼합연산
    - 숫자타입이 문자타입으로 변환되어 문자열 연산처럼 된다
"문자형" + 10
-> "문자형10"

🔹 이외의 데이터 타입

Boolean

undefined

null

symbol

Bigit

Object


4️⃣ 배열 (Array)

  • 여러개의 데이터를 순서와 함께 저장하고 싶을때 사용
  • 대괄호: [] 사용하여 배열을 만든다
  • 배열 안의 데이터 하나하나 : 요소(element)
let array = []
let array2 = ["가", "나", "다", "라"]

✅ 배열의 index

  • index : 요소에 순서를 부여
  • 해당 요소에 접근이 가능 하도록 해준다
  • 0번부터 시작
let array2 = ["가", "나", "다", "라"]

// index 0: "가"
// index 1: "나"
// index 2: "다"
// index 3: "라"
  • 인덱스 번호로 요소에 접근하기
index[0] = "가"
index[1] = "나"
index[2] = "다"
index[3] = "라"

✅ array.length

  • 배열의 길이를 나타내는 속성
  • 배열 요소의 개수를 알수 있다
let array = ["가", "나", "다", "라"]
// index.     0    1     2    3 

// length     1    2     3    4

// array.length = 4

✅ 배열의 Method (메서드)

  • 어떠한 기능을 가지고 있는 명령어

🔹 array.push()

  • 배열의 가장 뒤의 데이터를 추가
let ranking = ["정훈","주은","시윤"]
ranking.push("원두")

// 결과
ranking = ["정훈","주은","시윤","원두"]

🔹 array.pop()

  • 배열의 가장 뒤의 데이터를 삭제
  • ❗pop의 괄호 안에는 데이터를 넣지 않아도 된다
let ranking = ["정훈","주은","시윤"]
ranking.pop()

// 결과
ranking = ["정훈","주은"]

🔹 array.includes()

  • 특정 배열에 주어진 데이터가 포함되어 있는지 확인
  • 결과로 boolean값을 반환
let ranking = ["정훈","주은","시윤"]
ranking.includes("정훈")

// 결과
true

🔹 array.indexOf()

  • 지정된 요소를 찾을 수 있는 인덱스를 반환
  • 찾을 수 없다면 -1 반환
let ranking = ["정훈","주은","시윤"]
ranking.indexOf("정훈")

// 결과
0

5️⃣ 객체 (Object)

let obj = {
	name: "가나다",
	age: 25,
	height: 180
}

🔹 Dot notation (점 표기법)

  • key값에 접근시, 점을 이용해서 접근
  • userData.gender = “male”
    - 추가적인 key와 value를 넣을 수 있다
let userData = {
	name:"이정훈",
	age:85,
	height:180,
	company:"코드공장"
}

//Dot notation(점 표기법) 접근
userData.name = "이정훈"
userData.age = 85

🔹 Bracket notation (괄호 표기법)

  • key값에 접근시, 괄호[]를 이용해서 접근
  • userData[”gender”] = “male”
    - 추가적인 key와 value를 넣을 수 있다
  • ❗ ”” 사용하지 않으면 key값이 아닌 변수로 인식
let userData = {
	name:"이정훈",
	age:85,
	height:180,
	company:"코드공장"
}

//Bracket notation(괄호 표기법) 접근
userData["name"] = "이정훈"
userData["age"] = 85

✅ 객체 Method

🔹 Object.keys()

  • 객체의 key만을 가져와 배열에 담아주는 메서드
let userData = {
	name:"이정훈",
	age:85,
	height:180,
	company:"코드공장"
}

Object.keys(userData)
// 결과
[ "name", "age", "hight", "company"]

🔹 Object.values()

  • 객체의 value만을 가져와 배열에 담아주는 메서드
let userData = {
	name:"이정훈",
	age:85,
	height:180,
	company:"코드공장"
}

Object.keys(userData)
// 결과
[ "name", "age", "hight", "company"]

0개의 댓글