[TIL] 04. Javascript 3

Danbi Cho·2020년 3월 27일
0

TIL

목록 보기
4/20

1. Array

하나의 변수에 여러개의 데이터를 가지고 있는 것 / 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); // 경주

2. for문

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]);

3. 데이터 타입

Javascript 6가지 데이터 타입

  • undefined
  • null
  • boolean
  • 숫자
  • 문자열
  • 객체

typeof 연산자

typeof 연산자를 통해 값, 변수의 데이터 타입을 알 수 있다.
이 연산자를 사용하면 아래의 문자열 중 하나를 반환

  • "undefined": 정의되지 않은 변수
  • "boolean"
  • "string"
  • "numer"
  • "object": 함수를 제외한 객체 또는 object
  • "function"
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로 변환되는 값

  • 문자열: 비어 있지 않은 문자열 보두
  • 숫자: 0이 아닌 모든 숫자
  • 객체: 모든 객체

false로 변한되는 값

  • 문자열: " " (빈문자열)
  • 숫자: 0, NaN
  • 객체: null
  • undefined

문자
문자열(String) 데이터 타입은 ""(쌍따옴표)나 ''(홑따옴표)로 감싼 모든 표현

숫자
숫자(Number) 데이터 타입은 따옴표 없이 숫자만 쓸 때를 Number형

객체
키와 값의 조합으로 이루어진 데이터


4. String

""쌍따옴표, ''홑따옴표 안에 들어간 텍스트를 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
  }
}

와.. 이 문제 엄청 오래 걸림😭😭😭😭😭😭

profile
룰루랄라! 개발자 되고 싶어요🙈

0개의 댓글