하나의 변수에 여러개의 데이터를 가지고 있는 것 / String, Number, Array 모두 가능
값 하나하나를 Element (요소)라고 하며 / 요소와 요소를 쉼표(,)로 구분
arr = [ ]; // 데이터가 없는 빈 배열 형태로 작성 let cities = ["서울", "대전", "대구", "부산", "광주", "제주도"]; // 데이터가 있는 배열
배열이름 [index]로 배열의 요소를 가져올 수 있다 / 시작은 1이 아니라 0
배열의 길이를 구할 때 -> 배열이름.length
let cities = []; cities[0] = "서울"; cities[1] = "대전"; cities[2] = "대구"; cities[5] = "제주도"; console.log(cities[3]); console.log(cities[4]); console.log(cities); // [ '서울', '대전', '대구', undefined, undefined, '제주도' ]
cities라는 배열을 선언, 요소 추가 / 배열은 원하는 위치에 요소 할당
할당하지 않은 3, 4번째는 undefined가 출력
push/unshift함수
Array 형에서 기본적으로 제공하는 함수를 추가하는 함수
let cities = []; cities.push("경주", "전주"); cities.unshift("인천"); console.log(cities); // [ '인천', '경주', '전주' ]
push는 array의 마지막 부분에, unshift는 array의 맨 앞 부분에 요소를 추가한다.
let day = ['m', 's', 'w', 't']; day[1] = 't'; day[4] = 'f'; day[5] = 's'; let month = [1, 2, 3, 4] month.push(5);
배열 조작 방법은
1. index로 접근하여 수정이나 추가
2. push, unshift로 추가
pop함수
배열의 요소를 제거하는 함수
마지막 요소가 제거되고, 마지막 요소의 값을 반환
console.log(cities); // [ '인천', '경주', '전주' ] cities.pop(); console.log(cities); // [ '인천', '경주' ] let lastCity = cities.pop(); console.log(lastCity); // 경주
for (반복조건) { // 반복조건이 맞으면 실행할 코드 }
최소값 구하기
function findSmallestElement(arr) { if (arr.length === 0) { return 0; // 배열이 비어있으면 0을 return } else { let small = arr[0]; for (let i = 0; i < arr.length; i++) { if (small > arr[i]){ small = arr[i]; console.log(arr[i]); } } return small; } } findSmallestElement([20, 200, 23, 5, 3, 9, 4, 7]);
Javascript 6가지 데이터 타입
typeof 연산자를 통해 값, 변수의 데이터 타입을 알 수 있다.
이 연산자를 사용하면 아래의 문자열 중 하나를 반환
let msg = "message"; console.log(typeof msg); // string console.log(typeof 100); //number console.log(typeof []); //object
undefined
var, let, const를 사용해서 변수를 정의할 때, 초기화 하지 않았으면 undefined가 할당
let msg; // 변수 msg만 선언하고 초기화 하지 않음
console.log(msg === undefined); // true
null
데이터 타입 중 하나 / typeof로 확인하면 object라고 나온다
null은 빈 객체를 가르키고 있어서 object
boolean
ture / false 두 가지 값
true로 변환되는 값
false로 변한되는 값
문자
문자열(String) 데이터 타입은 ""(쌍따옴표)나 ''(홑따옴표)로 감싼 모든 표현
숫자
숫자(Number) 데이터 타입은 따옴표 없이 숫자만 쓸 때를 Number형
객체
키와 값의 조합으로 이루어진 데이터
""쌍따옴표, ''홑따옴표 안에 들어간 텍스트를 String형이라고 한다
String형에서 제공하는 기본 함수 / 알아서 대소문자를 바꿔준다
let lastName = 'danbi cho'; let upperLastName = lastName.toUpperCase(); let lowerLastName = lastName.toLowerCase(); console.log(lastName); // danbi cho console.log(upperLastName); //DANBI CHO console.log(lowerLastName); //danbi cho
배열에서 사용했던 length 속성을 String형에서도 사용 가능
Number형에는 length 속성이 존재하지 않기 때문에 String형으로 저장하여 lengt 사용해야 함
var phoneNumber = 01012345839; console.log(phoneNumber); console.log(phoneNumber.length); //undefined let phoneNumber = "01012345839"; console.log(phoneNumber); console.log(phoneNumber.length); // 11
indecOf() 함수는 특정 문자열이 있는지 확인 / 있으면 어느 순서에 해당 문자열이 있는지 알려준다
해당 문자열이 없으면 -1을 반환 / 특정 문자열을 달지 못하는 기능 등에 사용
let info = "JavaScript는 프로래밍 언어이다."; // 프로래밍 이라는 오타 let firstChar = info.indexOf("프로래밍"); // 프로래밍이 시작되는 index값 12를 변수 firstChar에 저장 console.log(info, firstChar); if (firstChar !== -1) { // 프로래밍이라는 문자열이 있으면 info = info.slice(0, firstChar) + "프로그래밍" + info.slice(firstChar+4, info.length); } // 0부너 12번 째 전까지 slice로 잘라준다 / fistChar(12) + 4부터 info.length인 22까지 잘라준다. console.log(info);
slice() 함수
slice(잘릴 시작위치, 잘릴 끝위치)
시작위치에서 부터 잘릴 끝위치 까지 문자열을 잘라준다 (잘릴 끝위치 하나 전 까지 잘린다고 생각하면 쉽다)
주소는 무조건 "시" 로 끝납니다. 예를 들어, "서울시".
"도" 와 "시" 는 주소에 한번 밖에 포함되어 있지 않습니다.
예를 들어, 다음과 같은 주소가 주어졌다면;
"경기도 성남시 분당구 중앙공원로 53"
다음과 같은 값이 리턴되어야 합니다:
"경기도 분당구 중앙공원로 53"
function sliceCityFromAddress(address) {
let cityAddress = address.indexOf("도");
let cityAddress1 = address.indexOf("시");
console.log(cityAddress);
console.log(cityAddress1);
if (cityAddress !== -1) { //'도'가 있는 경우
address = address.slice(0, cityAddress+1)+ address.slice(cityAddress1+1, address.length);
console.log(address);
return address;
} else {
address = address.slice(cityAddress1+2, address.length);
console.log(address);
return address
}
}
와.. 이 문제 엄청 오래 걸림😭😭😭😭😭😭