자바스크립트는 어떤 언어인가요?
- 자바스크립트는 웹사이트에 사용될 목적으로 만들어짐
- 현재 node.js, react native, electron 등 다양한 분야에서 사용됨
자바스크립트의 특징
- 인터프리터 언어: 코드를 실행하기 전 컴파일 과정을 거침 X
- 동적 자료형: 한 번 선언한 변수가 문자열, boolean, number 등 여러 자료형을 가질 수 있다.
- 객체지향 지원: 방식이 자바나 C++과는 차이가 있는 프로토타입 기반
콘솔과 주석
consol.log('출력할 값'); // 괄호 안에 출력할 내용 입력 (print 역할)
consol.log(1, 2, 3); // 쉼표로 구분 -> 다수의 데이터 한 번에 출력 가능
consol.log([true, false], {a:1, b:2}); // 다양한 데이터 출력 가능
// 주석 = 코드를 읽는 사람을 위한 메시지 - 이케 달아여
/*
여러 줄은
이렇게에
*/
변수와 상수에 데이터 담기
변수 & 상수: 데이터가 들어있는 주머니 -> 여러 곳에 사용 가능, 수정 / 고정된 값 사용 가능, 로직 구현에 있어 필요
- var: JS 초창기에 사용 - 여러 문제점들 존재 -> 현재 사용 X
- let: 변수 - 데이터 변경 가능, 한 변수에 여러 자료형 사용 가능
- const: 상수 - 데이터 변경 및 다시 선언 X, 반드시 선언과 동시에 초기화,
식별자 명명 규칙
- 영문, 한글 및 유니코드 글자, 숫자 사용 가능
- 특수문자는 $ 또는 _만 가능
- 숫자로 시작 X
- 공백 사용 불가
- 예약어 사용 불가
기본 자료형들과 연산자
자료형: 프로그램에서 사용되는 데이터의 종류
- boolean: 참 / 거짓 여부 (true / false)
- number: 숫자 (정수/실수)
- string: 문자열 (따옴표로 감싸진 문자)
- undefiend: 값 지정 X 상태
- null: 변수가 비어있음
연산자: 어떤 식이나 값에 따라 동작 지시하는 부호
- typeof : 해당 데이터의 데이터 타입 반환
- ! : 뒤에 오는 boolean의 반대 값 반환
- + : 문자열을 이어붙임
연산자 더 알아보기
비교 연산자: boolean 반환
const a = 1;
const b = 1;
const c = '1';
consol.log(a == b) // true
consol.log (a != b) //false
consol.log(a == c) // true - 자료형 관계 X
consol.log(a === c) // false - 자료형 관계 O
consol.log (a > b, a <= b) // false true
부수효과를 일으키는 연산자: 사용된 항의 값 수정
- 변수++ / 변수--: 변수의 값을 1증가/감소 - 값을 변화시키지 않고 사용
- ++변수 / --변수: 변수의 값을 1증가/감소 - 값을 변화시키고 사용
let num = 1;
consol.log(num++); // 1
consol.log(num); // 2
consol.log(++num); // 3
consol.log(num); // 3
num += 4
consol.log(num) // 7
산술 연산자: 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 모듈러(%), 지수 연산자(**)
boolean관련 연산자
- && (AND) - 양 변에 있는 조건이 모두 참일 때 참
- || (OR) - 양 변에 있는 조건이 하나만 참이어도 참
- 삼항 연산자: (조건) ? (참일 떄) : (거짓일 떄)
객체와 배열
객체: 데이터의 묶음 - 키와 값으로 구성 → 키와 값의 쌍 = 프로퍼티 (property)
- 중괄호({ })로 묶고 콜론(:)으로 키 값 설정, 쉼표(,)로 구분
const obj = {
name: '박지민',
age: 23,
};
값들에 접근하는 방법
obj.name // . 뒤에 키 이름
obj['name'] // [] 안에 키 이름을 문자열로
프로퍼티 추가
obj.job = '학생';
obj['job'] = '학생';
기존의 프로퍼티 수정
obj.age--;
obj['age'] = 22;
const를 수정할 수 있는 이유: 상수 자체가 아닌 내부 데이터는 변경 가능! (배열도 마찬가지)
배열: 다수의 데이터 저장 - 키가 number 타입인 객체 - 대괄호([ ])로 묶고 쉼표(,)로 구분
length 프로퍼티: 배열의 요소 개수 반환
const arr = [true, 3.14, 'Hello', person1];
consol.log(arr.length); // 4
요소들에 접근하기: arr[index]
요소 추가 및 삭제
arr.push(value) // 배열의 맨뒤에 요소 추가
arr.pop() // 배열의 가장 마지막 요소 반환하며 제거
배열과 객체의 중첩: 배열 안에 배열, 배열 안에 객체,객체 안에 배열, 객체 안에 객체 넣기 가능
const arr = [1, 2, 3, [4, 5]];
const arr = [1, 2, 3, { name: '박지민' };
const obj = {
arr: [1, 2, 3],
something: {
name: '박지민',
},
};
if / else문
if문: if (조건문)의 조건이 거짓이면 블록 내부에 진입하지 않음
if ~ else문: 조건식이 거짓일 때 실행되게 하려면 if문 다음에 else 작성
else if문: 여러 개의 조건을 한 번에 처리 가능
if (조건) {
조건이 참일 때 실행 // 거짓이면 블록 내부 진입 X
} else if (조건) { // 여러 번 사용 가능
위의 조건 거짓 else if 조건 참일 때 실행
} else {
위의 조건들 모두 거짓일 때 실행
}
switch문
동일한 조건이 주어지고 그 조건의 값에 따라 다른 명령을 실행
switch (조건) { // 일치하는 조건 만나면 이후에 만나는 break까지 명령 실행
case 값1 : 명령1
// 실행할 부분 끝나면 써야 함
break; // 나머지 조건 확인 X 조건문 빠져나감
case 값2 : 명령2
break;
default: 명령 // 마지막에 위치 - 위에 나열된 case에 참 X -> 실행
}
'WINK-(Web & App) > React.js 스터디' 카테고리의 다른 글
[2024 JS 심화 프론트 스터디] 이서영 #1주차 "JS 1주차 스터디" (0) | 2024.04.09 |
---|---|
[2024 JS 심화 프론트 스터디] 김지나 #1주차 "JS" (0) | 2024.04.08 |
[2024 JS 심화 프론트 스터디] 한승훈 #1주차 (0) | 2024.04.07 |
[2024 JS 심화 프론트 스터디] 류상우 #1주차 "JS 기초" (0) | 2024.04.06 |
[2023 React.js 스터디] 이지원 #3주차 - 2장. 리액트 컴포넌트 스타일링하기(1~4) / 4장. API 연동하기 (1) (0) | 2023.02.26 |