2022. 11. 14. 23:18ㆍWEB개발/TIL
Javascript 자료형
기본 자료형 vs 객체 자료형
- 기본 자료형: 다른 변수에 값을 할당하거나 함수 인자를 넘길 때 값을 복사해 전달
= 값을 가지고 있는 변수
- 객체 자료형: 값을 복사해 전달하는 것이 아닌 메모리 주소를 복사(같은 객체를 참조)
= 주소를 가지고 있는 변수(객체의 주소를 저장)
Object(객체/참조) 자료형
: Object 클래스 뿐 아니라 배열과 함수, 클래스 등 모두 Object에 포함
[ 객체 ]
: 참조할 수 있는 메모리 상의 값
ex) ▼▼▼
객체: 고양이 그 자체
속성: 이름-나비, 나이-1살
메소드: mew()-울다, eat()-먹는다
var cat = {
name: "나비",
age: 1,
mew: function() {
return "야옹";
}
};
# 리턴값 있는 함수와 없는 함수의 값 차이
function hello() {
return "안녕";
}
console.log(hello()); //안녕
function hi() {
console.log('hi'); //hi
}
console.log(hi()); //undefined
var a = hello();
console.log(a); //안녕
- 함수를 정의할 때 return값은 없어도 됨
만약 return값을 사용할 경우 한 번만 사용해야 함
[ 배열 ]
: 숫자형과 문자열과 마찬가지로 일반적인 스크립트와 동일
- [ ](대괄호)나 newArray()로 생성
- 크기의 제약이 없고, 하나의 배열에 서로 다른 타입의 변수가 들어갈 수 있음
var arr1 = [1,2,3,'a','b','c']; //[중괄호]를 사용해서 배열 생성
var arr2 = new Array(1,2,3,'a','b','c','d'); //new Array를 사용해서 배열 생성
console.log(arr1[0]); //index는 0번부터
console.log(arr1.indexOf('a')); //indexOf: index 순서를 알려주는 함수
index 순서 | 0 | 1 | 2 | 3 | 4 |
통상적 순서 | 1 | 2 | 3 | 4 | 5 |
# 배열에서 자주 사용되는 속성과 함수
1) 변수명.length: 길이(개수를 알려줌) //index 순서X
2) 변수명.indexOf(찾을 값): 입력한 요소의 index 순서를 알려줌
3) 변수명.push(추가할 값): 맨 마지막에 요소 추가
4) 변수명.pop():맨 마지막 요소 제거
5) 변수명.unshift(추가할 값): 맨 첫 번째에 요소 추가
6) 변수명.shift(): 맨 첫 번째 요소 제거
- shift함수는 인덱스 순서에 영향을 미침
[ 딕셔너리 ]
- 키(key): 값(value) 형태로 저장
- 딕셔너리는 index의 개념이 없음, 따라서 키(key) 값을 기준으로 값(value)을 가져와야 함.
var me = {
name: 'yeji',
birth: '0204'
};
me.gender='F'; //.(온점)을 사용하여 객체에 속성 추가
me['age']=23; //[](대괄호)를 사용하여 객체에 속성 추가
console.log(me.name); //.(온점) 사용해서 값 가져오기
console.log(me["age"]); //[](대괄호)사용해서 값 가져오기
# 배열 vs 딕셔너리 (값을 가져오는 방법)
배열 | index로 값을 가져옴 ex) console.log(arr1[0]); |
딕셔너리 | key 값으로 값을 가져옴 ex) console.log(me.name / me['name']); |
Javascript 표준 내장 객체
: 자바스크립트가 기본적으로 가지고 있는 객체들
프로그래밍을 하는데 기본적으로 필요한 도구들
ex) String, Number, Array, Date, Math..
[ Date 객체 ]
: 시간과 날짜에 관한 정보를 얻기 위해 사용하는 객체
// new Date();
// new Date(밀리초);
-> new Date(8000000); //1970.01.01 0시부터 밀리초만큼 지난 날짜
// new Date(년(year), 월(month), 일(day), 시(hour), 분(minute), 초(second), 밀리초(millisecond))
-> new Date(16,5,25); //Sun Jun(월은 0이 1월) 25 1916 00:00:00
-> new Date(2016,5,25,15,40); //Sat Jun 25 2016 15:40:00
- 년(year), 월(month)을 지정하지 않은 경우, 1970년 1월 1일 00:00(UTC)을 기준으로 값 반환
- 월(month)의 경우, 0부터 시작(0이 1월임)
# Date 주요 사용 함수
- Date.now()
- var date = new Date();
함수 | 내용 |
.getFullYear | 년도를 나타내는 4자리 숫자를 반환 |
.getMonth | 월을 나타내는 0 ~ 11의 정수를 반환(1월은 0, 12월은 11) |
.getDate | 날짜(1 ~ 31)를 나타내는 정수를 반환 |
.getDay | 요일(0(일) ~ 6(토))를 나타내는 정수를 반환 |
.getHours | 시간(0 ~ 23)를 나타내는 정수를 반환 |
.getMinutes | 분(0 ~ 59)를 나타내는 정수를 반환 |
.getSeconds | 초(0 ~ 59)를 나타내는 정수를 반환 |
.getMilliseconds | 밀리초(0 ~ 999)를 나타내는 정수를 반환 |
.getTime | 1970년 1월 1일 00:00:00(UTC)를 기점으로 현재 시간까지 경과된 밀리초를 반환 |
.toDateString | 사람이 읽을 수 있는 형식의 문자열로 날짜를 반환 ex) console.log(date.toDateString()); |
var date = new Date(16,5,25);
console.log(date);
var date2 = new Date(2016,5,25,15,40); //Sun Jun(월은 0이 1월) 25 1916 00:00:00
console.log(date2); //Sat Jun 25 2016 15:40:00
var date3 = Date.now();
console.log(date3);
console.log('------------');
var date4 = new Date();
var year = date4.getFullYear();
var month = date4.getMonth();
var month2 = parseInt(month)+1;
var datee = date4.getDate();
var hour = date4.getHours();
var min = date4.getMinutes();
var sec = date4.getSeconds();
var date5 = year+"-"+month2+"-"+datee+" "+hour+":"+min+":"+sec;
console.log(date5); // 2022-11-5 1:0:45
[ Math 객체 ]
: 수학에서 자주 사용하는 상수와 함수들을 미리 구현해 놓은 javascript 표준 내장 객체
Math.PI = 3.14(파이값)
Math.E = 2.718(자연로그값)
---
console.log(Math.min()); //값을 넣지 않을 경우 Infinity 반환
console.log(Math.min(-10,2,10)); //-10
console.log(Math.min(0,'a',5)); //비교할 수 없는 값이 있을 경우 NaN값 반환
console.log(Math.max(-10,2,10)); //10
console.log(Math.random()); //random: 무작위 수 반환(0~1사이의 수(소수값 출력))
//▼ 어떤 최솟값과 최댓값 사이의 수를 반환하고 싶은 경우 밑의 식을 사용
var min =1; var max = 10;
console.log(Math.random() * (max-min)+min);
console.log(Math.round(1.2)); //2; round: 반올림
console.log(Math.round(-1.7)); //-2
console.log(Math.floor(1.9)); //1; floor: 내림(정수기준)
console.log(Math.ceil(1.1)); //2; ceil: 올림(정수기준)
'WEB개발 > TIL' 카테고리의 다른 글
프레임워크와 라이브러리 (0) | 2022.11.16 |
---|---|
Javascript DOM (0) | 2022.11.15 |
Javascript(조건문, 반복문) (0) | 2022.11.14 |
Javascript(변수, 자료형, 연산자, 함수) (0) | 2022.11.14 |
CSS 속성(display, animation) (0) | 2022.11.14 |