[Javascript] Date, Random, Scope

GyungHo Go·2020년 5월 10일
0
post-thumbnail

Date

날짜 객체를 호출하면 쉽게 시간과 날짜를 얻을 수 있다.
날짜 객체를 생성할 때는 다음과 같이 new 연산자 다음에 Date 생성자를 쓴다.

let now = new Date();
console.log(now);

result
2020-05-10T14:17:25.671Z
(현재 날짜와 시간이 나타난다.)

Date 객체로 현재 시간을 가져온 후,
Date 객체가 갖고 있는 함수로 각 날짜, 시간의 값을 가져올 수 있다.

let rightNow = new Date();
let year = rightNow.getFullYear();
let month = rightNow.getMonth()+1;
let date = rightNow.getDate();
let day = rightNow.getDay();
let currentHour = rightNow.getHours();
let currentMin = rightNow.getMinutes();
console.log(rightNow);
console.log(year);
console.log(month);
console.log(date);
console.log(day);
console.log(currentHour);
console.log(currentMin);

result
2020-05-10T14:20:13.938Z
2020
5
10
0
23
20

  • 주의할점
    getMonth 함수로 값을 받을 때, 현재 달보다 1 작은 값이 반환되므로 +1을 해주어야 한다.

특정 날짜의 Date

let date1 = new Date('December 17, 2019 03:24:00');
let date2 = new Date('2019-12-17T03:24:00');
let date3 = new Date(2019, 5, 1);
console.log(date1);
console.log(date2);
console.log(date3);

result
2019-12-16T18:24:00.000Z
2019-12-16T18:24:00.000Z
2019-05-31T15:00:00.000Z

Random

Math.random()은 난수를 생성하는 메서드 이다. 난수는 정의된 범위내에서 무작위로 숫자를 추출한다. 난수는 0부터 1사이의 값에 소수점이 붙어서 무작위로 출력된다.

var randomNumber = Math.random();
console.log(randomNumber);

result
0.8349682260623148

Math random() 최대값 지정 : *

초기 범위인 0~1이 아닌 최대 범위를 조절하려면 곱하기 * 기호를 사용하면 된다.
최대값을 0부터 10으로 설정하려면 10을 곱해준다.

Math.random() * 최대값

Math.random*10 의 값은 1의 자리수에 엄청 긴 소수자리로 이루어져 있다.
ex) 9.697009826327621
이렇게 구한 후, 소수자리는 다 버리도록 내림함수를 사용하여 0~10 사이의 랜덤수를 구할 수 있다.

var randomNumber = Math.random();
console.log(Math.floor(randomNumber*10));

result
6

(여기서 Math.floor는 내림함수를 구할때 쓰인다.)

Math random() 최소값 지정 : +

최소값은 + 더하기 기호로 원하는 최소값을 더해준다.
그런데 최대값과 달리 최소값을 더하기로 들어가기 때문에 최대값도 동시에 변하게 된다.
따라서 최소값을 지정할 때에는 최대값에도 피해가 가지 않도록 셋팅이 필요하다
이를 방지 하기 이해서 최대값 최소값 동시에 지정해한다. 최대값 설정시 최대값에서 최소값을 빼버린 값을 대입하면 된다.

( Math.random() * ( 최대값 - 최소값 )  ) + 최소값
  • 최소값 구하기 예시
( Math.random() * (10 - 1) ) + 1

result
9.435629400190384
(이럴 경우 최대값을 10미만의 숫자가 나오므로 10이 넘을 수 없다.)

Scope

스코프란?

유효범위를 의미하는 단어로, 변수 및 매개변수의 접근성과 생존기간을 말한다.

변수 선언은 다음 세가지를 기억해야 한다.
1. const를 기본으로 사용한다.
2. 변경이 될 수 있는 변수는 Let을 사용한다.
3. var는 사용하지 않는다.

let
block(function, fot, if등)안에서 유효한 변수

const
const는 수정 불가능한 불변성(immmutable)을 말하는 것이 아니라 값 재 할당이 불가능한 것이다. const를 사용하더라도, 배열과 오브젝트의 값을 변경하는 게 가능하다.

profile
기록하는 습관

0개의 댓글