JS 기초-(9) 내장 객체

김수민·2022년 11월 10일
0

JavaScript

목록 보기
9/27

내장 객체

JaVascript 엔진에 내장된 객체로 다양한 함수 기능을 가지고 있다.


Object

object


String

문자타입

string.length 길이

문자열의 길이를 알 수 있다.

string.indexOf(찾는 문자, 찾는 위치)

문자열 안에 해당 문자가 존재하는지 찾는다.
존재하면 공백을 포함하여 index 번호를 매긴다.
❗ =0보다 큰 숫자가 입력된다.
❗ 존재하지 않으면 -1을 반환한다.

string.lastIndexOf()

문자열 안에 해당 문자가 여러개 존재하면 제일 마지막에 발견된 문자열의 index를 반환한다.
존재하지 않으면 -1을 반환한다.

Stirng 반환

❗ 문자열에 영향을 끼치지는 않는다.

string.slice(start,end)

문자열에서 start이상 end미만을 잘라내어 반환한다.
end 피라미터를 생략하면 문자열의 마지막 위치까지 잘라낸다.
음수로 지정하면 뒤에서부터 음수만큼을 반환한다.

string.substring()

string.slice와 동일하나 음수를 허용하지 않는다.

string.substr(start,num)

string.slice와 유사하나 start에서 num갯수 만큼을 잘라내어 반환한다.

padStart(문자열의 총 길이,추가할 문자),padEnd()

문자열 앞에 지정된 문자를 지정된 길이만큼 추가한다.

let str="A"
str=str.padStart(4,"B");
// 👉 'BBBA'

string.repeat(n)

문자열을 n번 반복한다.

String 변경

❗ 문자열에 영향을 끼치지는 않는다.

string.replace() 지정변경

특정 문자열을 지정한 문자열로 변겅
처음 발견된 문자열 1개만 변경된다.
대소문자를 구분한다.

let str ="Please visit Seoul and Seoul!";
let n= str.replace("Seoul","Jeju");
// 👉 n="Please visit Jeju and Seoul!"
  • 한문구 여러개를 한번에 변경
let str ="Please visit Seoul and Seoul!";
let n= str.replace(/Seoul/g,"Jeju");
// 👉정규표현식을 이용하면 전부 변경된다.
// 👉 n="Please visit Jeju and Jeju!"
  • 여러문구 여러개를 한번에 변경
let str="H is K and A is B";
let n= str.replace(/["H,"K","A","B"]/g,"A");
// 👉 n="A is A and A is A"
  • 알파벳을 변경시키기
let str="aBCd342AFw5";
let n= str.replace(/[a-z]/gi,"");
// 👉 n="3425"
  • 숫자 제외한 모두를 변경시키기
let str="aBCd342AFw5";
let n= str.replace(/[^0-9]/g,"");
  • //g : 글로벌(전역) 검색.
    아래는 //g 안에 작성된다고 가정한다.
    • [0-9] : 숫자
    • [\d] : 숫자
    • [\D] : 숫자가 아닌
    • [a-z] : 소문자
    • [A-Z] : 대문자
    • [^] : ~을 제외한 전체
  • //i : 대/소문자 구분 안함
  • //m : 여러 줄 검색

string.replaceAll() 지정변경

특정 문자열을 지정한 문자열로 변경
모든문자가 변경된다.
replace()에서 사용한 정규표현식이 사용가능하다.
하위 브라우저에서는 사용이 불가능한 경우가 있다.

let str ="Please visit Seoul and Seoul!"
let n= str.replaceAll("Seoul","Jeju");
// 👉 n="Please visit Jeju and Jeju!"

toUpperCase(), toLowerCase() 대소문자변경

  • string.toUpperCase() 문자열을 모두 대문자로 변경
  • string.toLowerCase() 문자열얼 모두 소문자로 변경

string.concat() 병합

2개 이상의 문자열을 하나의 문자열로 합친다.

let text1= "Hello";
let text2="World";
text3= text1.concat(" ",text2);
//👉 text3= "Hello World"

string.trim() 공백제거

문자열의 앞 뒤 공백을 제거한다.
글자와 글자 사이의 공백은 제거하지 않는다.

eval(string) 문자열 계산

문자열로 된 수식을 계산해준다.


Number

숫자형 타입 Number
위 링크의 묵시적 형 변환으로 형을 변환시킬 수 있다.

Number.isInteger()

()안의 숫자가 정수이면 true, 아니면 false

Math

수학적인 상수와 내장 함수를 가진 객체

반올림 Math.round()

올림 Math.ceil()

내림 Math.floor()

정수 Math.trunc()

소수 부분은 버리고 정수를 반환한다.
음수 양수의 구분은 바뀌지 않는다.

Math.sign()

양수이면 1, 음수이면 -1, 0이면 0을 반환한다.

제곱근 Math.pow()

Math.pow(8,2);
			👉 64

제곱근 값을 반환한다.

루트 Math.sqrt()

루트값을 반환한다.

양수값 Math.abs()

음수 값을 받아도 양수값으로 반환한다.

최소값 Math.min() , 최대값 Math.max()

Math.min(0,200,30,20,-8,-100) 👉-100
Math.max(0,200,30,20,-8,-100) 👉200

let arr=[1,2,3,4,5]
Math.min(...arr) 👉1
Math.max(...arr) 👉5

❗ Math객체에 배열을 지정할 때에는 앞에 ...을 붙여 해당 배열을 숫자로 인식할 수 있도록 펼쳐주어야한다.

랜덤 Math.random()

0~1 사이의 숫자형 값을 반환한다.

  <script>
    let arr = ["🥙","🌯","🌮","🌭","🥞"]
    let randomNum = Math.floor(Math.random()*5);
    console.log(randomNum); 👉0~4까지의 값을 랜덤으로 출력
    console.log(arr[randomNum]); 👉위 숫자에 해당하는 index 주소를 가진 arr 값을 출력
  </script>

Date

날짜를 저장할 수 있고 날짜와 관련된 method를 제공해주는 내장객체

new Date()

객체 생성
new Date(year, month, date, hours, minutes, seconds, ms)
year과 month는 필수 입력
year은 반드시 4자리 숫자로 작성
month는 0(1월)~11(12월)
date는 값이 없을 경우 1일로 처리
hours, minutes, seconds, ms에 값이 없을 경우 0으로 처리

new Date() 👉현재 날짜 및 시각
new Date(0) 👉1970년 1월 1일 9시 0분 0초
new Date(1000) 👉1970년 1월 1일 9시 0분 1초
new Date("2022-02-06") 👉2022년 02월 06일 9시 0분 0초
new Date(2022, 11, 24, 09, 15, 59, 00) 👉 2022년 12월 24일 09시 15분 59초

date.getFullYear()


변수에서 년을 반환

date.getMonth()+1

변수에서 월을 반환
❗ 월의 입력값(0~11)을 반환하므로 +1 해준다.

date.getDay()

변수에서 요일을 반환
0(일요일) ~ 6(토요일)

date.getMinutes()

변수에서 분을 반환

date.getTime()

변수 값을 ms단위로 반환

date.toLocaleDateString()


날짜만 반환

date.toLocaleTimeString()


시간만 반환

date.setDate(num)

날짜를 num일을 더한 날짜로 변환


Array

인덱스를 사용해 값을 식별할 수 있는 자료 구조

let fruits = ['🍈','🍐','🍑']; //배열 선언
    
fruits[0] // index 0에 저장된 값이 출력된다.
fruits.length // 배열에 담긴 값의 수가 출력된다.
    
console.log(fruits[fruits.length-1])
//=🍑 마지막 index에 저장된 값이 출력된다. 

요소의 추가

fruits.push('🍇') //맨 끝의 요소 추가 👉 ['🍈','🍐','🍑','🍇']
fruits.pop() //맨 끝의 요소 제거 👉 ['🍈','🍐','🍑']
fruits.unshift('🍇') //맨 앞의 요소 추가 👉 ['🍇','🍈','🍐','🍑']
fruits.shift() //맨 앞의 요소 제거 👉 ['🍈','🍐','🍑']

arr.splice(시작,삭제할갯수,아이템)

fruits.splice(1,2)
//아이템을 입력하지 않은것으로 간주하고 indxe[1]부터 2개를 삭제한다.
// 👉 fruits=['🍈']
    
fruits.splice(1,0,'🍇')
//index[1] 이후에 0개를 삭제하고 요소'🍇'를 추가 
// 👉 fruits=['🍈','🍇','🍐','🍑']
    
fruits.splice(1,2,'🍋')
//index[1] 이후에 2개를 삭제하고 요소'🍋'를 추가 
// 👉 fruits=['🍈','🍋','🍑']
let lotto= [];
for (let i = 1; i < 46; i++) {
	lotto.push(i);
}
// lotto는 나올수 있는 수 1 ~ 45

let result= [];
for(let i=0; i<6; i++){
	let num = Math.floor(Math.random()*lotto.length);
	result.push(lotto[num]);
	// result는 lotto의 index가 될 값 0~44
	// 44에서 아래 구문으로 인해 index가 하나 제거되면 곱해야할 숫자가 줄어든다
	// ㄴindex가 줄어들면, array.length 도 줄어든다.
	lotto.splice(num,1);
	// 나온값 lotto의 index를 기반으로 lotto에서 나올 수 있는 숫자(이미 발생함) 1개 삭제
}

위와 같이 이미 발생한 숫자를 제외할 수도 있다.

array.reduce((a,b)=>) 데이터 순회

arr.reduce((a,b)=>a+b,0); 
// arr 배열의 모든 값의 덧셈을 구한다.
// ,0 은 초기값의 지정이다 

array.map((v,i,arr)=>{}) 새로운 배열 반환

첫번째 인자에는 array의 value가 담긴다.
두번째 인자에는 array의 index가 담긴다.
세번째 인자에는 전체 array가 담긴다.

const numbers=[1,2,3,4,5];
const newnumbers= numbers.map(v=>v*2);

//👉 newnumbers=[2,4,6,8,10]

string.split(구분자) 문자열을 배열로 변환

구분자를 기준으로 문자열을 분리해서 배열로 반환한다.

let birth = "1997-06-12";
let arr=birth.split("-");
arr= (3) ['1997', '06', '12'];

array.toString() 문자로 반환

배열 안의 모든 문자를 쉼표(,)를 이용해 모두 결합해서 하나의 문자열로 반환

array.join(구분자)

구분자를 이용해 모두 결합해서 하나의 문자열(string)로 반환
❗ 구분자를 입력하지 않을 경우 ,으로 연결한다.
❗ 사이에 아무것도 넣지 않고 문자열로 반환하고 싶을 경우 구분자로('')공백을 입력하자

let fruits =["🍈","🍑","🍐"]
fruits.join("*")
//👉🍈*🍑*🍐

Array 변경1

❗ 함수에 영향을 끼치지는 않는다.

array.concat() 결합

let arr1 = ["🍈","🍐"];
let arr2 = ["🍑","🍓"];
let arr3 = arr1.concat(arr2)
//👉['🍈', '🍐', '🍑', '🍓']

array.slice(start,end)

함수에서 start이상 end미만을 잘라내어 반환한다.
end 피라미터를 생략하면 함수의 마지막 위치까지 잘라낸다.
음수로 지정하면 뒤에서부터 음수만큼을 반환한다.

array.includes("")

let fr = [`🍑`,`🍐`,`🍈`,`🥞`,`🥤`]
fr.includes('🍓')
//👉false
fr.includes('🍐')
//👉true

Array 변경2

❗ 함수에 영향을 끼친다.

arrary.sort()

배열에 문자형 데이터가 있는 경우 오름차순으로 정렬한다.

let numbers =[10,2,3,4,8,12]
numbers.sort()
//👉[10, 12, 2, 3, 4, 8] 
//맨 앞글자를 기준으로 오름차순 정렬되었다.
    
return numbers.sort((a, b) => a-b);
//👉[2, 3, 4, 8, 10, 12]
return numbers.sort((a, b) => b-a);
//👉[12, 10, 8, 4, 3, 2]

array.reverse()

배열을 반전시킨다.

배열의 반복 출력 for

let arr=["a","b","c","d","e"];
for(let i=0; i<arr.length; i++){
	console.log(arr[i]);
};
//배열변수 arr 값을 전부 출력할 수 있다.

for 바로가기

for of

for(변수 of 배열 변수){
	console.log(변수);
}
for(let i of arr){
	console.log(i);
}
//위와 같이 작성할 수도 있다. 

배열을 돌며 해당 배열의 값이 i에 담긴다.

forEach

배열변수.forEach(변수=>{});
arr.forEach(i=>console.log(i);)
  //내장 메서드 forEach를 사용하여 작성해도 똑같은 값이 나온다.

forEach구문의 매개변수
첫번째에는 value(값)이,
두번째에는 index(배열번호)가,
세번째에는 array(배열)이 입력된다.




profile
sumin0gig

0개의 댓글