일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- kb it's your life 기자단
- 금융권 부트캠프
- kb취업교육
- sql내장함수
- 오토핫키
- kb it's your life
- kb 취업교육
- 첫알고리즘평가
- kbit교육
- 부트캠프
- 알고리즘
- kb네트워킹캠프
- prefixsum #C언어
- 전문가특강
- 금융권 it
- SQL데이터타입
- 이차원배열
- autohotkey
- 취업교육
- sql
- KB국민은행
- 멀티캠퍼스
- SQLD
- 반별이벤트
- 금융권it
- kb it's your life 6기
- kb 기자단
- Today
- Total
지식보부상님의 공부 일지
웹 표준 HTML, CSS, JS [09] 자바스크립트 기본 문법 본문
[09] 자바스크립트 기본 문법
(1) 자바스크립트 기본 용어와 출력 방법
◈ 자바스크립트 기본 용어
- html 문서 내 <script> 태그 내에 작성 가능
- 이때, 스크립트는 위에서 아래방향으로 읽어나가므로, <script> 태그보다 아래에 있는 내용은 적용이 안됨을 주의!
- 표현식: 값을 만들어내는 코드
- 문장: 프로그래밍에서 코드의 최소 단위(라인) / 문장 마지막에 세미콜론(;) 작성
- 키워드: JS에서 이미 지정되어 있는 단어
- 식별자: 변수/함수 등의 이름 / 첫글자는 알파벳, 언더바(_), 달러($) 표시만 가능 / 키워드, 숫자 시작, 공백은 사용 x
- 표기법의 종류
- snake case: 언더바(_)를 이용하여 식별자를 정하는 표기법 / ex) Hello_World
- cammel case: 첫글자는 소문자, 두번째 단어부터는 대문자 / ex) helloWorld
- pascal case: 첫글자도 대문자 / 주로 클래스명으로 사용하는 방식 / ex) HelloWorld
- 식별자의 종류
구분 | 단독 사용 | 다른 식별자와 사용 |
식별자 뒤에 괄호 O | 함수 | 메서드 |
식별자 뒤에 괄호 X | 변수 | 속성 |
- 주석: 한줄 주석 처리 ( // ) / 여러줄 주석 처리 ( /* */ ) / 단축키: Ctrl+ /
◈ 자바스크립트 출력
- alert( "msg" ) : 웹브라우저에 msg를 띄우는 함수 / 사용자가 확인 누르기 전까지 실행 중지
- console.log( "msg" ): 콘솔창에 출력 / 사용자는 볼 수 없는 출력
◈ 자바스크립트 입력
- x = prompt( 'msg' ) : 웹브라우저에 'msg'를 띄워 사용자의 입력을 x에 저장 / 문자열로 저장되니 조심
const x = prompt("x를 입력하세요"); // ex) x = 10
const y = prompt("y를 입력하세요"); // ex) y = 20
console.log(x+y); // 산술 연산 x+y(30)이 아닌 문자열 xy(1020)이 출력됨
(2) 자료형과 변수
◈ 자료형
- 숫자형: 정수, 실수 / 사칙 연산( +, -, *, /), 나머지(%) 연산 가능
- 정수 / 정수 의 결과가 실수로 나옴 / ex) 4 / 3
- 정수 / 0 의 결과가 에러가 아닌 Infinity 로 나옴
- 문자형: 작은/큰 따옴표(' ' / " ")로 나타냄
- 이스케이프 문자: 탭( \t) / 엔터(\n) / 역슬래시(\\) / 작은따옴표(\') / 큰따옴표(\")
- + : 문자열 결합 / 문자 + 숫자 => 문자열 + '숫자' 로 처리 됨 (숫자형 -> 문자형)
※ 문자형과 다른 자료형과의 연산시 +를 제외한 나머지 연산( - , /, %) 은 문자가 아닌 다른 자료형으로 형변환 됨
ex) 문자열 - 숫자 => 숫자 - 숫자 로 처리됨
- 불(Boolean): 참(true), 거짓(false) / >, >=, <, <=, ==, != / !, &&, ||
- 문자열과 숫자의 크기 비교 => 문자열을 숫자로 형변환하여 크기비교 / ex) '10' > 5 , '10' == 10는 true
- 문자열과 숫자를 다르게 보고싶다면 => === ( !==) 이용 / ex) '10' === 10 은 false
◈ 변수
- 변수: 값 저장 위한 식별자
- 변수 선언 방식
- let : 변수 선언 / 재선언 불가 / 선언된 위치 이후에서부터 사용 가능
let pi; // 변수 선언
pi = 3.14 // 값 할당
let pi = 3.14 // 변수 선언 및 초기화
- const: 상수 선언 / 선언 및 초기화 한번씩만 가능 / 관례적으로 상수는 대문자
- var: 현재는 권장되지 않는 방식
(3) 조건문과 반복문
◈ 조건문
- if:
if ( 조건 1 ) { }
else if ( 조건 2 ) { }
else { }
- switch:
switch( 변수 ) {
case 값1: // 변수 === 값1 이면 실행
break;
case 값2: // 변수 === 값2 이면 실행
break;
default: // 어디에도 해당하지 않는 경우 실행
break;
- 삼항 연산자: 조건식 ? 참인 경우 실행 : 거짓인 경우 실행 => 문장 수를 줄일 수 있음.
let x = 1;
x === '1' ? console.log('같습니다') : console.log('다릅니다'); // 같습니다
cf) 현재 시간 구하는 클래스 Date
// Date 객체
let date = new Date();
// Date 클래스의 메서드
let year = date.getFullYear(); // 년
let month = date.getMonth() + 1; // getMonth()는 0부터 시작하므로 +1 해주어야
let day = date.getDay(); // 일
let hours = date.getHours(); // 시간
let minutes = date.getMinutes(); // 분
let seconds = date.getSeconds(); // 초
◈ 반복문
- for 문 : for ( 초기값 ; 조건문 검사 ; 증감 ) { } : undefined 요소 모두 접근
- for ( in ) : for ( let i in 객체(배열) ) { }
: i에 객체의 필드명(배열의 인덱스) 차례로 할당 / 객체(배열) 내의 undefined 요소는 접근하지 x
- for ( of ) : for ( let i of 객체(배열) ) { } : i에 객체(배열)의 값 차례로 할당
- while 문: while( 조건 ) { } / while 문내에 탈출 조건 명시해야 무한 루프에 빠지지 않음
- do .. while문: do{ }while(조건) / 코드 최소 한번 실행
- 반복문 제어: break (멈추고 빠져나옴) / continue(멈추고 다음 반복 진행)
(4) 함수
◈ 함수 선언
- 함수 선언 방식
함수 선언문 | function 함수명 ( 매개변수 ) { } - 어디서든 호출 가능 (호이스팅) |
function hello(){ console.log('hello'); } |
함수 표현식 | let 함수명 = function( 매개변수 ) { } - 표현식 이후에만 호출 가능 |
let hello = function(){ console.log('hello'); } |
화살표 함수 | let 함수명 = ( 매개변수 ) => { } - this 사용 x - 인수 1개면 괄호 생략 o - 함수 1줄이면 중괄호({}) return 생략 가능 |
let hello = () => { console.log('hello'); } |
- 실행 우선순위: 화살표 함수 > 함수 표현식 > 함수 선언문 / 같은 우선순위 내에서는 가장 마지막 함수를 우선
◈ 매개변수와 변환 값
- 매개변수 개수가 다르더라도 에러 없이 실행
- 매개변수가 부족한 경우: undefined 값으로 대체 하여 실행
- 매개변수가 남는 경우: 앞에서부터 처리 (남는 변수는 무시)
- 매개변수로 함수를 전달 가능: 콜백(callback) 함수
function callTenTimes(callback) {
for (let i = 0; i < 10; i++) callback();
}
let fun = function () {
console.log('함수 호출');
};
callTenTimes(fun); // '함수 호출' 10번 출력됨
(5) 배열과 객체
◈ 배열
- 배열: 배열 크기 미리 선언할 필요 x / 자료형 다른 여러 요소들 배열에 넣을 수 있음 /
- .length : 배열 길이 반환 / 대입 연산도 가능 ex) arr.length = 10;
- .push() : 배열 마지막에 요소 추가
- .pop() : 배열 마지막의 요소 제거, 제거 요소 리턴
- .unshift() : 배열 가장 앞에 요소 주가
- .shift() : 배열 가장 앞 요소 제거, 제거 요소 리턴
- .join("") : 배열 괄호 내 기준으로 문자로 변합하여 반환
- .reverse() : 배열 순서 거꾸로 반환
cf) 문자열 메서드
- .split("") : 문자열 괄호 내 기준으로 잘라 배열로 반환
◈ 객체 (Object)
- 요소에 키(속성명, 필드명) 이용하여 접근
- 객체 접근/추가 방법: 객체['키'] / 객체.키 로 접근/추가
- 속성(property, attribute, 필드) 삭제: delete 객체.키
- 속성 존재 여부 확인: '키' in 객체
- 메서드(method): 객체 내 속성이 함수인 속성
◈ 속성과 메서드
- this: 현재 인스턴스 참조
- e.target: document에서 발생한 이벤트 확인 가능
const list = document.querySelector(".list");
list.addEventListener("click", (e)=>{console.log(e.target);});
◈ 구조 분해 할당 (비구조화 할당)
- 객체 / 배열 값 각각 분해해서 변수에 넣는 방식
ex)
// 구조 분해 할당 예제
const user = {
id: 1,
name: 'bia',
email: 'bia@gmail.com',
};
// 구조 분해 할당으로 손쉽게 값 분해 가능
const { id, name, email } = user; // id=1, name='bia', email='bia@gmail.com' 할당
// 배열 또한 값 분해 가능
const fruits = ['수박', '딸기', '바나나'];
const [a, b, c] = fruits; // a='수박', b='딸기', c='바나나' 할당
◈ 전개 연산자 (나머지 연산자)
- ...배열(객체) 로 사용
- ...배열 : 배열의 요소 모두 한번에 전개 시켜줌
// 전개 연산자 예제
const fruits = ['수박', '딸기', '바나나'];
console.log(...fruits); // 수박 딸기 바나나
- 매개변수에 많은 값 들어올 때 나머지 연산자 이용하여 처리 가능
const fruits = ['사과', '바나나', '수박', '망고', '딸기'];
function conLog(a, b, ...c){
console.log(a, b, c)
}
conLog(...fruits); // 사과 바나나 ['수박', '망고', '딸기']이 출력됨
- 문자열을 배열로 변환 가능
const str = 'apple';
const strArr = str.split(''); // split 이용 가능
const strArr2 = [...str]; // 나머지 연산자 이용 가능
- 배열 하드카피 가능
const arr = [1, 2, 3, 4, 5];
const copyArr = arr; // 메모리 복사
const hardCopyArr = [...arr]; // 하드 카피
- 객체 간 병합에 사용 가능
const person = {
name: 'bia',
age: 1,
};
const schoolInfo = {
title: 'student',
school: 'sogang',
};
// 두 객체 병합 및 새로운 속성 추가 가능
const profile = {
...person,
...schoolInfo,
location: 'seoul',
};
'KB IT's Your Life' 카테고리의 다른 글
Git 사용하기 (0) | 2025.03.17 |
---|---|
Dolt Node.js [02] 자바스크립트 기초 문법과 모듈 (1) | 2025.03.17 |
Dolt Node.js [01] 노드 환경 설정 (1) | 2025.03.13 |
웹 표준 HTML, CSS, JS [10] 문서 객체 모델 (1) | 2025.03.12 |
[KB IT's Your Life] 6기 대면 전공반 합격 후기 (2) | 2025.03.05 |