DEVELOP

02. 자바스크립트 자료형Ⅰ

let dataTypes = ['number','string','boolean','null','undefined','array'];

// 배열의 2번째 요소를 출력해 주세요
console.log(dataTypes[1]);

// 배열의 마지막 요소를 출력해 주세요
console.log(dataTypes[dataTypes.length-1]);

// 기본 자료형에 속하는 처음 5개 요소를 잘라내서 출력해 주세요
console.log(dataTypes.slice(0,5));

03. 배열과 반복문

let dataTypes = ['number','string','boolean','null','undefined','array'];

for(i=0; i<dataTypes.length; i++){
  console.log(dataTypes[i]);
}

05. 자바스크립트 자료형Ⅱ

let dataTypes = ['number', 'string', 'false', 'true', 'null', 'undefined'];

// 배열 끝에 'array'와 'object'를 추가해 주세요
// 여기에 코드를 작성하세요
dataTypes.push('array','object');
console.log(dataTypes);

// 배열의 마지막 요소 ('object')를 제거해 주세요
// 여기에 코드를 작성하세요
dataTypes.pop();
console.log(dataTypes);

// 배열 중간에 있는 'false', 'true'를 제거해 주세요
// 여기에 코드를 작성하세요
dataTypes.splice(2,2);
console.log(dataTypes);

// 'string' 바로 다음에 'boolean'을 추가해 주세요
// 여기에 코드를 작성하세요
dataTypes.splice(2,0,'boolean');
console.log(dataTypes);

06. 온도 바꾸기

let celsiusTemps = [27, 25, 26, 22, 28, 27, 21];
let fahrenheitTemps = []

for(i=0; i<celsiusTemps.length; i++){
  let F = (celsiusTemps[i] * 9 / 5) + 32;
  fahrenheitTemps.push(F);
}
console.log(fahrenheitTemps);

09. 코드댓 과제 

let codethat = {
  name: '코드댓',
  bornYear: 2022,
  founder: {
    name: '김민준',
    age: 28
  },
	languages: ['C++', 'Java', 'JavaScript', 'Python'],
};

// name 프로퍼티 값을 출력해 주세요
console.log(codethat.name);

// founder의 name 프로퍼티 값을 출력해 주세요
console.log(codethat.founder.name);

// languages 프로퍼티의 3번째 값을 출력해 주세요
console.log(codethat.languages[2]);

// propertyName 변수를 이용해서 bornYear 프로퍼티 값을 출력해 주세요
let propertyName = 'bornYear';
console.log(codethat[propertyName]);

11. 영어 단어장Ⅰ

let myVocab = {
  function:'함수',
  variable:'변수',
  constant:'상수',
  'default value':'기본 값',
  global:'세계적인',
};

// '지역의'라는 뜻을 가진 local 프로퍼티를 추가해 주세요
myVocab.local = '지역의';
console.log(myVocab);

// global 프로퍼티의 값을 '전체적인'으로 바꿔 주세요
myVocab.global = '전체적인';
console.log(myVocab);

// default value 프로퍼티를 삭제해 주세요
delete myVocab["default value"];
console.log(myVocab);

13. 영어 단어장Ⅱ

let myVocab = {
  function: '함수',
  variable: '변수',
  constant: '상수',
  global: '전체적인',
  local: '지역의',
  printVocab: function (word){
    if (word in myVocab){
      console.log(`'${word}'의 뜻은 '${myVocab[word]}'입니다.`);
    }else{
      console.log('단어를 찾지 못했습니다.');
    }
  },
};

// 테스트 코드
myVocab.printVocab('function');
myVocab.printVocab('local');
myVocab.printVocab('array');

14. 숫자열, 문자열 메소드 

**.toFixed()**

: 소수를 다룰 때 사용하는 메소드

- 파라미터로 숫자를 전달해 주면, 그 값만큼 소수점 아래 자릿수를 고정해 줌

- 소수 포맷팅 시 유용하게 쓰임 

/* 숫자에 바로 사용 */
console.log(0.3.toFixed(2)); // 0.30

/* 숫자형 변수에 사용 */
let myNumber = 0.3591;
console.log(myNumber.toFixed(3)); // 0.359

 

.charAt(), []

- .charAt()이나 대괄호 표기법으로 특정 위치(인덱스)에 있는 문자를 가져올 수 있다.

let myString = 'codeit';
console.log(myString.charAt(3)); // e
console.log(myString[0]); // c

.slice()

: 두 인덱스 사이의 문자열을 잘라내 줌

let myString = 'codeit';
console.log(myString.slice(0, 4)); // code (0과 4 사이)
console.log(myString.slice(4); // it (4부터 끝까지)
console.log(myString.slice(); // codeit (문자열 전체)

.toUpperCase()

: 알파벳 문자를 모두 대문자로 만들어 줌

let myString = 'CoDeIt';
console.log(myString.toUpperCase()); // CODEIT

.toLowerCase()

: 알파벳 문자를 모두 소문자로 만들어 줌

let myString = 'CoDeIt';
console.log(myString.toLowerCase()); // codeit

.repeat()

: 문자열을 여러 번 반복하는 데 사용

let myStr = '123';
consol.log(myStr.repeat(5)); // 123123123123123

.trim()

: 문자열 시작과 끝부분에 있는 모든 공백 문자를 제거(trim)해 줌

- 문자열 중간에 있는 공백은 제거 x 

let myString = '   Hello Codeit!   ';
console.log(myString.trim());

let yourString = '\n\nHello Codeit!\t\t';
console.log(yourString.trim());
Hello Codeit!
Hello Codeit!

16. 순이들의 시험 결과

let hyesoonScore = {
	'데이터 모델링의 이해': 10,
	'데이터 모델과 성능': 8,
	'SQL 기본': 22,
	'SQL 활용': 18,
	'SQL 최적화 기본 원리': 20,
};

let minsoonScore = {
	'데이터 모델링의 이해': 14,
	'데이터 모델과 성능': 8,
	'SQL 기본': 12,
	'SQL 활용': 4,
	'SQL 최적화 기본 원리': 16,
};

function passChecker(scoreObject) {
  let sum = 0;
	for (let key in scoreObject){
    sum = sum + scoreObject[key];
  }
  if (sum >= 60){
    console.log('축하합니다! 합격입니다!');
  }else{
    console.log('아쉽지만 불합격입니다..');
  }
}

// 테스트 코드
passChecker(hyesoonScore);
passChecker(minsoonScore);

17. 투표 집계하기

// 투표 결과 배열
let votes = [
  '이재식', '이재식', '이규하', '이규하', '이규하',
  '이재식', '이재식', '이규하', '이규하', '이재식',
  '이규하', '이규하', '이규하', '이규하', '이재식',
  '이재식', '이규하', '이재식', '이재식', '이재식',
  '이재식', '이재식', '이규하', '이규하', '이규하',
  '이규하', '이규하', '이재식', '이규하', '이규하',
  '이규하', '이규하', '이재식', '이규하', '이규하',
  '이규하', '이재식', '이재식', '이재식', '이규하',
];

// 후보별 득표수 객체
let voteCounter = {};

for(let key of votes){
  if(key in voteCounter){
    voteCounter[key]++;
  }else{
    voteCounter[key] = 1;
  }
}
// 테스트 코드
console.log(voteCounter);

- 배열은 for...of, 객체는 for...in을 사용한다. 

 

21. Math와 내장 객체

Math

- Math 내장 객체는 다양한 수학적 기능을 지원함

- Math 객체는 자바스크립트에 내장돼있기 때문에 바로 사용가능

/* PI 프로퍼티 */
console.log(Math.PI); // 3.141592653589793

/* floor() 내림 함수 */
console.log(Math.floor(3/2)); // 1

/* ceil() 올림 함수 */
console.log(Math.ceil(3/2)); // 2

Date

- 날짜 생성, 포매팅, 연산 등을 지원                

const date = new Date();

console.log(date);
Wed Jun 29 2022 13:00:00 GMT+0900 (Korean Standard Time)

- 날짜를 생성하면 현재 날짜와 시간이 date에 저장

- 시간대는 컴퓨터의 시간대 설정을 참고해서 자동으로 설정

- Date는 일반적으로 날짜를 다루는 객체

- new Date()를 하면 특정 날짜를 저장하고 있는 객체를 하나 생성

- 특정 날짜를 생성하려면 날짜 포맷을 문자열로 넘겨줘도 되고, 연도, 월, 날짜에 해당하는 숫자를 파라미터로 넘겨줘도 됨

- 생성할 때 시간을 생략하면 00:00:00으로 설정됨

/* 문자열로 날짜 생성 YYYY-MM-DD */
const date1 = new Date('2022-06-29');

/* 문자열로 날짜 생성 YYYY-MM-DDThh:mm:ss */
const date2 = new Date('2022-06-29T13:00:00');

/* 숫자로 날짜 생성 new Date(year, month, date)
   주의: month는 월의 인덱스라서 1월은 0, 2월은 1, ..., 12월은 11입니다 */
const date3 = new Date(2022, 5, 29);

/* 숫자로 날짜 생성 new Date(year, month, date, hours, minutes, seconds)
   주의: month는 월의 인덱스라서 1월은 0, 2월은 1, ..., 12월은 11입니다 */
const date4 = new Date(2022, 5, 29, 13, 00, 00);

console.log(date1);
console.log(date2);
console.log(date3);
console.log(date4);
Wed Jun 29 2022 00:00:00 GMT+0900 (Korean Standard Time)
Wed Jun 29 2022 13:00:00 GMT+0900 (Korean Standard Time)
Wed Jun 29 2022 00:00:00 GMT+0900 (Korean Standard Time)
Wed Jun 29 2022 13:00:00 GMT+0900 (Korean Standard Time)

- 날짜 포매팅

const date = new Date(2022, 5, 29, 13, 00, 00);

console.log(date.getFullYear());
console.log(date.getMonth()); // 주의: 0에서 시작
console.log(date.getDate());
console.log(date.getHours());
console.log(date.getMinutes());
console.log(date.getSeconds());
console.log(date.getMilliseconds());
2022
5
29
13
0
0
0

- 문자열 포매팅(``)을 사용하면 날짜를 원하는 대로 출력가능

console.log(`오늘은 ${date.getFullYear()}년 ${date.getMonth() + 1}월 ${date.getDate()}일입니다.`);
오늘은 2022년 6월 29일입니다.

- 날짜 연산

: 날짜에서 다른 날짜를 빼면 차이를 밀리초로 계산

const date1 = new Date(2022, 5, 29, 11, 30, 00);
const date2 = new Date(2022, 5, 29, 13, 00, 00);

const timeDifference = date2 - date1;

console.log(timeDifference);
5400000
console.log(timeDifference + ' 밀리초');
console.log(timeDifference/1000 + ' 초');
console.log(timeDifference/1000/60 + ' 분');
console.log(timeDifference/1000/60/60 + ' 시간');
5400000 밀리초
5400 초
90 분
1.5 시간

 

profile

DEVELOP

@JUNGY00N