노션 3일차 20.04.22 - 20.04.23
전역변수&지역변수 | 내부함수&외부함수
- 전역변수
: 함수 외부에서 선언한 변수, 프로그램 전체에서 접근할 수 있는 변수 - 지역변수
: 함수 내부에서 선언한 변수, 함수가 실행되면 만들어지고 함수가 종료되면 소멸하는 변수로 함수 외부에서는 접근 할 수 없다. - 내부함수
:내부 함수가 함수 외부에 내부 함수와 같은 이름이 있을 때, 내부 함수가 우선적으로 호출된다. 함수 내부에 있는 함수는 함수의 내부에서만 호출 할 수 있다. 함수 외부에서는 호출이 불가능하다.
String <-> Number 변환 (read only)
: JS의 특징 중 하나는 데이터 타입을 신경쓰지 않아도 된다는 것. 그만큼 편하지만 오류가 생길 확률이 높다. 타 언어들은 변수에 처음으로 값을 할당하면, 자동적으로 type이 확정되고 그 후에 다른 type의 값을 할당 할 수 없다.
💡NaN = Not to Number : 더하기나 빼기 연산자가 있어 컴퓨터가 숫자인 줄 알고 계산하려고 했더니 계산이 불가능하고 이상한 답이 나왔다는 의미. -(마이너스)의 경우, 오로지 숫자에만 사용되는 연산자이다. "안녕하세요" - "안녕" = NaN이다.
- number + string ⭕️
: +의 양쪽을 보고 string이 존재하면 number또한 string으로 전환해서 더해준다. "number" + "string" = "numberstring";
-> 이 경우 number함수 사용해서 string을 number형으로 바꿔주는 것이 바람직하다.
parseFloat("1.901");
Number("1.901");
parseInt("200") + 1;
- string + string ⭕️
: "string" + "string" = "stringstring" - string - string ❌
: -는 숫자에만 적용되는 연산자 - number - string ⭕️
: number - "string" = number, -의 경우에는 string을 숫자로 전환해준다. 예외는 존재한다. string의 값이 number가 아니고 문자의 경우에는 NaN이 출력된다.
이외의 전환 경우
: number를 string으로 toString, 연산자의 특성을 활용한 type전환
//Number형에서 String형으로 변환하고 싶을 수도 있습니다.
var numberAsNumber = 1234;
var numberAsString = numberAsNumber.toString();
console.log(numberAsNumber, typeof numberAsNumber); //number
console.log(numberAsString, typeof numberAsString); //string
//+ 연산의 특성을 활용하여 아래와 같이도 변환.
var numberAsNumber = 1234;
var numberAsString = 1234 + "";
console.log(numberAsNumber, typeof numberAsNumber); //number
console.log(numberAsString, typeof numberAsString); //string
//- 연산의 특성을 활용해서 String 형을 Number형으로 변환
var numberAsNumber = "1234";
var numberAsString = numberAsNumber - 0;
console.log(numberAsNumber, typeof numberAsNumber); //string
console.log(numberAsString, typeof numberAsString); //number
날짜와 시간
- 날짜 객체 생성
let rightNow = new Date();
console.log(rightNow);
//코드의 첫번째 줄이 실행되는 순간의 시간만 담긴다. 계속 refresh되진 않는다.
: Date객체가 가지고 있는 함수로 날짜와 시간 값을 가져올 수 있다.
let year = rightNow.getFullYear();
let month = rightNow.getMonth()+1;
//getMonth의 경우에는 현재 달 보다 1 작은 값이 반환된다.
let date = rightNow.getDate();
let day = rightNow.getDay();
let currentHour = rightNow.getHours();
let currentMin = rightNow.getMinutes();
getTime()
let time = rightNow.getTime();
console.log(time); //1587600222925
: 날짜의 밀리초 표현을 반환할 수 있다. 기준이 되는 일자는 1970년 1월 1일을 기준으로 time의 값만큼 지났다는 것. 비교 연산자를 통해 언제가 더 과거인지 판단 가능하다. 값이 더 작을수록 과거에 해당된다.
[Javascript] Date 객체로 원하는 날짜, 시간 표현하기
지난번에는 Javascript에서 Date 객체를 활용하여 현재 날짜와 시간을 가져오는 방법을 알아보았습니다. [Javascript] 현재 날짜, 시간 구하기 이번에는 Date 객체로 원하는 날짜와 시간을 표현하는 방법을 알아보..
hianna.tistory.com
Number관련 함수
Math객체 사용
- Math.round() : 반올림
- Math.ceil() : 무조건 올림
- Math.floor() : 무조건 내림
- Math.pow(num1, num2) : num1의 값에 num2만큼 제곱
JavaScript Math Object
JavaScript Math Object The JavaScript Math object allows you to perform mathematical tasks on numbers. Example Math.PI; // returns 3.141592653589793 Try it Yourself » Math.round() Math.round(x) returns the value of x rounded to its nearest integ
www.w3schools.com
난수
: 특정 입력이나 조건에 따라 무작위로 선택된 것 처럼 보이는 것. 무작위로 만들어진 수열
Math.random()은 0.673172894273546와 같은 0 이상 1 미만의 구간에서 근사적으로 균일한 부동소숫점 소수값만 뱉어냄
//랜덤함수 구하는 법
var randomNumber = Math.random();
console.log(Math.floor(randomNumber*10));
//randomNumber*10 의 값은 1의 자리수에 엄청 긴 소수자리
//floor() 소수자리는 다 버리도록 내림함수를 사용하여 0~10 사이의 랜덤수
//최소(min), 최대값(max)을 받아 그 사이의 랜덤수를 return
//random() 정확한 정수(2)가 아닌 소수값(1.9999)을 뱉어냄
function getRandomNumber(min, max) {
return Math.random() * (max - min) + min;
//0과 1을 원하지 않으니까 최소값 +min
//최소값만 뽑고싶을 때
}
function getRandomNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
//+1을 해줘서 최대값과 최소값 모두 포함
let myMin = Math.random();
let myMax = Math.random();
getRandomNumber (myMin, myMax);
min = Math.ceil(min);
max = Math.floor(max);
JavaScript Random
JavaScript Random Math.random() Math.random() returns a random number between 0 (inclusive), and 1 (exclusive): Example Math.random(); // returns a random number Try it Yourself » Math.random() always returns a number lower than 1. JavaScript
www.w3schools.com
Generating random whole numbers in JavaScript in a specific range?
How can I generate random whole numbers between two specified variables in JavaScript, e.g. x = 4 and y = 8 would output any of 4, 5, 6, 7, 8?
stackoverflow.com
Math.random()
Math.random() 함수는 0 이상 1 미만의 구간에서 근사적으로 균일한(approximately uniform) 부동소숫점 의사난수를 반환하며, 이 값은 사용자가 원하는 범위로 변형할 수 있다. 난수 생성 알고리즘에 사용되는 초기값은 구현체가 선택하며, 사용자가 선택하거나 초기화할 수 없다.
developer.mozilla.org
객체 Object
let 객체이름 = {
property이름: property값,
hello: 20000
};
- property 이름은 중복될 수 없다.
- property이름과 property값 사이에 :(콜론)으로 구분한다.
- property를 추가할 때는 ,(쉼표)를 붙여준다.
- property 값에는 어느 type이나 가능하다(string, number, array, object, function..)
Property접근
객체이름.property이름
객체이름["property이름"]
: 마침표(.) 연산자를 사용하며, 접근하려는 객체명은 왼쪽에 프로퍼티명은 오른쪽에 위치 (객체내부에 프로퍼티가 존재하기 때문에)
'Web > 자바스크립트' 카테고리의 다른 글
array methods (0) | 2020.05.04 |
---|---|
#DOM과 Event (0) | 2020.04.29 |
javaScript #3 :: 반복문 for | array.length | typeOf() | indexOf() | slice() (0) | 2020.04.23 |
javaScript #2 :: 함수내부의 변수 | 매개변수와 인자 | 논리연산자(주의사항) | undefined과 null | 한 함수에서 여러가지 갯수의 인자값 | 배열 array (0) | 2020.04.22 |
javaScript #1 :: Media query | 함수의 호출과 정의 | 변수 | return | 증가연산자 | 비교연산자 | 논리연산자 (0) | 2020.04.21 |
댓글