Notice
Recent Posts
Link
정화 코딩
[Back-end] codeit : 프로그래밍 핵심 개념 in JavaScript 본문
문자열 실습 1
console.log("한국 영화 역사상 아카데미상을 받은 것은 '기생충'이 처음이다.");
console.log('아리스토텔레스는 "인간은 사회적 동물이다."라고 말했다.');
문자열 실습 2
console.log(`영화 '베테랑'에서 "어이가 없네~"라는 대사가 유명했다.`);
불린형
console.log(3 === 3); // 일치 (형변환 X)
console.log(3 !== 3); // 불일치 (형변환 X)
console.log(3 == 3); // 동등 (형변환 O)
console.log(3 != 3); // 부등 (형변환 O)
console.log(2 === '2'); // false (=== : 엄격한 비교)
console.log(2 == '2'); // true (== : 덜 엄격한 비교)
연산자 우선순위
() > ! > typeof > ** > * > / > % > + > - > '<' > '<=' > '>' > '>=' > '==' > '!=' > > '===' > '!==' > && > || > =
형변환
// 숫자 -> 문자
let a = 123;
console.log(String(a)); // 123
// 불린 -> 문자
let b = true;
console.log(String(b)); // true
// 문자 -> 숫자
let c = '문자';
console.log(Number(c)); // Nan
let d = '123';
console.log(Number(d)); // 123
// 불린 -> 숫자
let e = true;
console.log(Number(e)); // 1
let f = false;
console.log(Number(f)); // 0
// 문자 -> 불린
let g = '';
console.log(Boolean(g)); // false
// 숫자 -> 불린
let h = 0;
console.log(Boolean(h)); // false
let i = NaN;
console.log(Boolean(i)); // false
템플릿 문자열 실습
function calcWage(name, time, wage) {
let total = time * wage;
console.log(`${name}님의 근무 시간은 총 ${time}시간이며, 최종 급여는 ${total}원 입니다.`);
}
// 테스트 코드
calcWage('김윤식', 208, 11340);
calcWage('성규재', 175, 12160);
calcWage('손태웅', 161, 13070);
calcWage('허우선', 222, 10980);
null과 undefined
null : 의도적인 없음
undefined : 처음부터 없음 (선언 후 초기화 X)
실습 - 자료형 응용
// 숫자형과 문자열 재료
let material1 = 3;
let material2 = '3';
let material3 = 10;
let material4 = '4';
let material5 = 4;
// 연산 결과
let result1;
let result2;
// 연산을 통해 result1에 문자열 '34'를, result2에 숫자형 34를 할당
result1 = material2 + material4;
result2 = material1 * material3 + material5
// 테스트 코드
console.log(result1);
console.log(typeof result1);
console.log(result2);
console.log(typeof result2);
실습 - 함수 부려먹기 1
function logParticipant(name) {
console.log(`${name}(이)가 대화에 참여했습니다.`);
}
// 테스트 코드
logParticipant('동수');
logParticipant('윤하');
logParticipant('재준');
logParticipant('동훈');
logParticipant('영희');
logParticipant('신욱');
실습 - 함수 부려먹기 2
function expressMultiplication(x, y) {
console.log(`${x} * ${y} = ${x * y}`);
}
// 테스트 코드
expressMultiplication(3, 4);
expressMultiplication(3, 2);
expressMultiplication(7, 5);
expressMultiplication(8, 9);
expressMultiplication(5, 5);
expressMultiplication(9, 9);
return문의 두 가지 기능
1. 함수 호출 부분에 어떤 값을 되돌려 준다.
2. 함수 자체의 실행을 중단한다.
return문과 console.log의 차이 실습
function first() {
let message = "코드잇";
return message;
}
function second() {
let message = "codeit";
console.log(message);
}
function third() {
let message = undefined;
console.log(message);
}
// 테스트 코드
console.log(first());
second();
console.log(third());
실습 - 함수 부려먹기 3
// 직사각형의 넓이를 계산하는 함수
function calculateRectangleArea(width, height) {
return width * height;
}
// 테스트 코드
let area1 = calculateRectangleArea(3, 4); // 가로 3, 세로 4인 직사각형의 넓이 계산
let area2 = calculateRectangleArea(5, 8); // 가로 5, 세로 8인 직사각형의 넓이 계산
let area3 = calculateRectangleArea(7, 2); // 가로 7, 세로 2인 직사각형의 넓이 계산
console.log(`Area1: ${area1}, Area2: ${area2}, Area3: ${area3}`);
실습 - 세트 메뉴 주문하기
// optional parameters
function orderSetMenu(sandwich, drink = '스프라이트') {
console.log(`주문하신 ${sandwich}, ${drink} 세트 메뉴 나왔습니다!`);
}
// 테스트 코드
orderSetMenu('코드웨잇 클럽');
orderSetMenu('터키베이컨 아보카도', '코카콜라');
orderSetMenu('코드웨잇 멜트');
orderSetMenu('이탈리안 비엠티', '닥터페퍼');
orderSetMenu('에그마요', '환타 오렌지');
변수의 scope
let x = 3; // global variable (전역 변수)
function myFunction() {
let x = 5; // local variable (지역 변수)
console.log(x);
}
myFunction(); // 5
console.log(x); // 3
상수
const PI = 3.14;
const MY_NUM = 1234;
실습 - 함수 변수 복습
// 아래에 adultTag, teenagerTag, errorTag, transferTag라는 변수들을 작성해 주세요
let adultTag = "삑!";
let teenagerTag = "삑삑!";
let errorTag = "삑삑삑!";
let transferTag = "환승입니다.";
// 아래에 tagCase파라미터를 가지는 tagNotification() 함수를 작성해 주세요
function tagNotification(testCase) {
console.log(testCase);
}
// 테스트 코드
tagNotification(adultTag);
tagNotification(teenagerTag);
tagNotification(transferTag);
tagNotification(errorTag);
tagNotification(adultTag);
실습 - 롤러코스터
// 파라미터 height을 활용하는 checkHeight 함수를 완성하세요
function checkHeight(height) {
if (height >= 140) {
console.log("탑승이 가능합니다.");
}
else {
console.log("탑승이 불가능합니다.");
}
}
// 테스트 코드
checkHeight(140);
checkHeight(135);
checkHeight(170);
실습 - 학점 계산기
function printGrade(midtermScore, finalScore){
let totalScore = midtermScore + finalScore;
if (totalScore >= 90) {
console.log("A");
}
else if (totalScore >= 80) {
console.log("B");
}
else if (totalScore >= 70) {
console.log("C");
}
else if (totalScore >= 60) {
console.log("D");
}
else {
console.log("F");
}
}
// 테스트 코드
printGrade(25, 35);
printGrade(50, 45);
printGrade(29, 24);
printGrade(37, 42);
실습 - 서열 정리
// 나의 나이와, 나의 성별을 저장하는 변수
let myAge = 26;
let myGender = 'male';
// 호칭을 담은 변수
let callOlderBrother = '형';
let callOlderSister = '누나';
let callFriend = '친구';
let callYoungerSister = '여동생';
let callYoungerBrother = '남동생';
// 상대방의 나이와 성별에 따른 호칭을 리턴하는 함수 whatShouldICall를 완성하세요
function whatShouldICallYou(yourAge, yourGender) {
if (myAge === yourAge) {
return callFriend;
}
else if (myAge > yourAge) {
if (yourGender === 'male') {
return callYoungerBrother;
}
else {
return callYoungerSister;
}
}
else {
if (yourGender === 'male') {
return callOlderBrother;
}
else {
return callOlderSister;
}
}
}
// 테스트 코드
let result1 = whatShouldICallYou(25, 'female');
let result2 = whatShouldICallYou(20, 'male');
let result3 = whatShouldICallYou(26, 'female');
let result4 = whatShouldICallYou(30, 'male');
let result5 = whatShouldICallYou(31, 'female');
console.log(result1);
console.log(result2);
console.log(result3);
console.log(result4);
console.log(result5);
실습 - 등급별 티켓 가격
// 각 등급별 가격
let VIPPrice = 15;
let RPrice = 13;
let SPrice = 10;
let APrice = 8;
// 각 등급에 맞는 가격을 출력하는 함수 checkPrice를 완성하세요
function checkPrice(grade) {
switch (grade) {
case 'VIP':
console.log('VIP석은 15만 원입니다.');
break;
case 'R':
console.log('R석은 13만 원입니다.');
break;
case 'S':
console.log('S석은 10만 원입니다.');
break;
case 'A':
console.log('A석은 8만 원입니다.');
break;
default:
console.log('VIP, R, S, A 중에서 하나를 선택해 주세요.');
break;
}
}
// 테스트 코드
checkPrice('R');
checkPrice('VIP');
checkPrice('S');
checkPrice('A');
checkPrice('B');
for 반복문 실습 1
for (let i = 2; i <= 100; i += 2) {
console.log(i);
}
for 반복문 실습 2
function printTriangle(height) {
for (let i = 1; i <= height; i++) {
let stars = "";
for (let j = 0; j < i; j++) {
stars += "*"
}
console.log(stars);
}
}
// 테스트 코드
console.log('높이: 1');
printTriangle(1);
console.log('높이: 3');
printTriangle(3);
console.log('높이: 5');
printTriangle(5);
while 반복문 실습 1
let i = 0;
while (i < 50) {
console.log(2 * i + 1);
i++;
}
while 반복문 실습 2
const N = 180;
let cnt = 0;
let i = 1;
while (i <= N) {
if (N % i === 0) {
console.log(i);
cnt++;
}
i++;
}
console.log(`${N}의 약수는 총 ${cnt}개입니다.`);
break와 continue
break : 해당 조건 만족 시, 반복문을 빠져 나온다.
continue : 해당 조건 만족 시, 실행 중인 동작을 건너뛰고 다음 동작을 수행한다.
실습 - 구구단 만들기
for (let i = 1; i < 10; i++) {
for (let j = 1; j < 10; j++) {
console.log(`${i} * ${j} = ${i * j}`);
}
}
실습 - 피보나치 수열
let num1 = 1;
let num2 = 1;
let tmp = 0;
console.log(num1);
console.log(num2);
for (let i = 0; i < 48; i++) {
tmp = num2;
num2 = num2 + num1;
num1 = tmp;
console.log(num2);
}
'Web Development' 카테고리의 다른 글
[Node.js] Google OAuth 2.0으로 로그인/로그아웃 구현 (0) | 2024.08.02 |
---|---|
[Node.js] jwt 토큰으로 회원가입/로그인/로그아웃 구현 (0) | 2024.07.22 |
[Back-end] codeit : 프로그래밍과 데이터 in JavaScript (0) | 2024.05.21 |
[Back-end] codeit : 프로그래밍 시작하기 in JavaScript (0) | 2024.05.19 |
이화마켓 웹어플리케이션 개발 : 로그인/회원가입 화면 구현하기 (0) | 2023.12.04 |
Comments