객체
객체
1. 객체: 사람이 보고 만지고 느낄 수 있는 모든 대상
객체.속성(키) : 고유값
객체.메서드() : 행동
객체모델링: 현실세계의 객체를 컴퓨터 언어로 변경하는 것
키(속성): 객체가 갖고 있는 고유 특징을 기술한 것 메서드: 객체가 갖고있는 동작
ex)
객체.속성
강아지.속성: 종,성별,색
강아지.메서드(): 뛰기,걷기,꼬리흔들기
객체.속성: ()가 없음
객체.메서드(): ()가 반드시 있어야함 ==== ((객체.함수())라고도 부름)
함수명() : 앞에 객체가 없다
싱글 리터널 객체
let(count) 객체명 ={키:값}
객체.키
let 객체명={
키:값,
키:값,
키:값,
메서드명: function(){
실행문
}
}
객체명.키
객체명.메서드()
객체명["키"]
---
{
let dog = {
name: '치와와',
age : 3,
color: 'brown',
food: '사료',
eat: function(){
// this: 객체 자기 자신
console.log(`${this.name}는 ${this.food}를 좋아합니다`)
},
run:function(){
console.log(`${this.name}는 달린다`)
},
sleep:function(){
console.log(`${this.name}는 잠을 잔다`)
},
swim:function(){
console.log(`${this.name}는 수영을 한다`)
}
}
console.log('이름:',dog.name)
console.log('나이:',dog.age)
console.log('색:',dog['color'])
console.log('먹이:',dog.food)
dog.eat()
dog.run()
dog.sleep()
}
=> 결과값
[Running] node "/workspaces/codespaces-blank/index.js"
이름: 치와와
나이: 3
색: brown
먹이: 사료
치와와는 사료를 좋아합니다
치와와는 달린다
치와와는 잠을 잔다
[Done] exited with code=0 in 0.051 seconds
//자동차 객체 모델링
{
const car = {
name:"테슬라",
color:"검정",
price:"7000dollar",
start:function(x){
if(x=='on'){
console.log('시동이 켜졌습니다')
}else{
console.log('시동이 꺼졌습니다')
}
}
}
console.log(`이름: ${car.name}`);
console.log(`색상: ${car.color}`);
console.log(`이름: ${car['price']}`);
car.start('on')
// start 메서드 호출 on이 들어가면 console로 시동이 켜졌습니다 그렇지 않으면 시동이 꺼졌습니다
}
[Running] node "/workspaces/codespaces-blank/index.js"
이름: 테슬라
색상: 검정
이름: 7000dollar
시동이 꺼졌습니다
[Done] exited with code=0 in 0.09 seconds
2. String객체 활용
내장객체: String객체 : new String('문자열')
/*
오류결과값
*/
{
let userId = prompt('아이디를 입력해주세요');
//abel
if(userId.length>=8&&userId.length<=12){
console.log('사용 가능 한 아이디 입니다');
}else{
console.log('8~12글자 사이로 다시 입력해주세요');
}
}
=> 결과값
[Running] node "/workspaces/codespaces-blank/index.js"
8~12글자 사이로 다시 입력해주세요
[Done] exited with code=0 in 0.058 seconds
------------------------------------------------------------------------
/*
성공 결과값
*/
{
let userId = prompt('아이디를 입력해주세요');
//abelabelabel
if(userId.length>=8&&userId.length<=12){
console.log('사용 가능 한 아이디 입니다');
}else{
console.log('8~12글자 사이로 다시 입력해주세요');
}
}
=> 결과값
[Running] node "/workspaces/codespaces-blank/index.js"
사용 가능 한 아이디 입니다
[Done] exited with code=0 in 0.092 seconds
3. length 객체
{
/*
제품코드 10=> 00010
제품코드 21=> 00021
5자리보다 입력 받은 수가 적으면
입력받은 자리수뺀 나머지 만큼 000붙히기
*/
const make=(num,size)=>{
let result = '';
num=num.toString();
let len =num.length;
if(len<size){
for(let i=0; i<size-len; i++){
result += '0';
}
return result+num; // return문은 줄바꿈하면 안됌
}
}
//값,자릿수
console.log(make(21,5))
}
=>결과값
[Running] node "/workspaces/codespaces-blank/index.js"
00021
[Done] exited with code=0 in 0.12 seconds
4. charAt (문자열 첫번째 인덱스값 반환)
.charAt(인덱스) : 인덱스에 해당하는 값 1개만 반환
/*
1. user 변수에 사용자에게 주민번호 뒷자리 7자리 입력받기 (7자리가 아니면 형식 잘못됨 출력)
2. 첫글자 1또는3 이면 남자 2또는4면 여자 , 나머지 숫자면 범위 초과
3. 공백이나 문자가 들어오면 형식이 잘못.
4. isNaN 사용
*/
1번 결과
{
let user = prompt('주민번호 뒷자리를 입력,7자리');
//'1154814';
let len = user.charAt(0);
if(user.length===7){
if(len==1||len==3){
console.log(`남자`);
}else if(len==2||len==4){
console.log(`여자`);
}else if(len==''||isNaN(len)){
console.log(`형식이 잘못되었습니다.`);
}else{
console.log(`범위 초과`);
}
}else{
console.log(`형식이 잘못되었습니다.`);
}
}
=> 결과값
[Running] node "/workspaces/codespaces-blank/index.js"
남자
[Done] exited with code=0 in 0.126 seconds
------------------------------------------------------------------------
2번 결과
{
let user = prompt('주민번호 뒷자리를 입력,7자리');
//12525 or ''(공백일때)
let len = user.charAt(0);
if(user.length===7){
if(len==1||len==3){
console.log(`남자`);
}else if(len==2||len==4){
console.log(`여자`);
}else if(len==''||isNaN(len)){
console.log(`형식이 잘못되었습니다.`);
}else{
console.log(`범위 초과`);
}
}else{
console.log(`형식이 잘못되었습니다.`);
}
}
[Running] node "/workspaces/codespaces-blank/index.js"
형식이 잘못되었습니다.
[Done] exited with code=0 in 0.054 seconds
5. slice , substring , substr ( 문자열 추출)
일부 문자열을 가져올 때 사용.
- slice(시작인덱스,자릿수): 시작인덱스부터 마지막 종료 인덱스 바로 전까지 문자열 분리함, 종료 인덱스가 음수이면 종료, 인덱스를 뒤에서부터 계산(음수가 존재함)
- substring(시작인덱스,종료인덱스-1): slice()와 동일하다 단, 음수가 존재하지 않는다
- substr(시작인덱스,글자수)
{
let str = `안녕하세요홍길동입니다`;
//slice()
console.log(str.slice(2));
console.log(str.slice(undefined)); // undefinded는 모두출력
console.log(str.slice(0));
console.log(str.slice(-4,-1));
}
=> 결과값
[Running] node "/workspaces/codespaces-blank/index.js"
하세요홍길동입니다
안녕하세요홍길동입니다
안녕하세요홍길동입니다
동입니
[Done] exited with code=0 in 0.053 seconds
------------------------------------------------------------------------
{
let str = `안녕하세요홍길동입니다`;
//substring()
console.log(str.substring(1,3));
console.log(str.substring(-1,-3)); // 음수는 적용안된다
console.log(str.substring(undefined)); // undefined는 모두출력
}
=> 결과값
[Running] node "/workspaces/codespaces-blank/index.js"
녕하
안녕하세요홍길동입니다
[Done] exited with code=0 in 0.059 seconds
------------------------------------------------------------------------
{
let str = `안녕하세요홍길동입니다`;
//substr()
console.log(str.substr(1,1));
console.log(str.substr(1,4));
console.log(str.substr(2,6));
}
=>결과값
[Running] node "/workspaces/codespaces-blank/index.js"
녕
녕하세요
하세요홍길동
[Done] exited with code=0 in 0.059 seconds
활용
/* slice로 주민번호를 입력받고 출력해보기 */
{
let user = prompt('주민번호 앞자리 6자리를 입력해주세요');
if(user.length===6){
let y = user.slice(0,2);
let m = user.slice(3,4);
let d = user.slice(5,6);
console.log(user)
console.log(`당신의 생일은 19${y}년 ${m}월 ${d}일 입니다`)
}else{
console.log('생년월일 6자리를 입력해주세요')
}
}
=>결과값
[Running] node "/workspaces/codespaces-blank/index.js"
960309
당신의 생일은 1996년 3월 9일 입니다
[Done] exited with code=0 in 0.054 seconds
6. indexOf , search , includes (검색)
indexOf('문자') : 해당값이 없으면 -1 을 반환함
search('문자') : 해당값이 없으면 -1 을 반환함
.includes('문자') : 해당 문자열을 포함되어 있는지 결과 true/false;
{
/* indexOf */
let str = `안녕하세요 저는 홍길동입니다 오늘은 금요일` // 해당 문자의 위치
if(str.indexOf('홍길동')!=-1){
console.log(`해당 단어가 존재함`)
}else{
console.log(`해당 단어를 검색할 수 없음`)
}
}
=>결과값
[Running] node "/workspaces/codespaces-blank/index.js"
해당 단어가 존재함
[Done] exited with code=0 in 0.053 seconds
------------------------------------------------------------------------
{
/* search */
let str = `안녕하세요 저는 홍길동입니다 오늘은 금요일` // 해당 문자의 위치
if(str.search('송혜교')!=-1){
console.log(`해당 단어가 존재함`)
}else{
console.log(`해당 단어를 검색할 수 없음`)
}
}
=>결과값
[Running] node "/workspaces/codespaces-blank/index.js"
해당 단어를 검색할 수 없음
[Done] exited with code=0 in 0.051 seconds
------------------------------------------------------------------------
{
/* includes */
let str = `안녕하세요 저는 홍길동입니다 오늘은 금요일` // 해당 문자의 위치
if(str.includes('홍길동')){
console.log(`해당 단어가 존재함`)
}else{
console.log('해당 단어 검색 불가')
}
}
=>결과값
[Running] node "/workspaces/codespaces-blank/index.js"
해당 단어가 존재함
[Done] exited with code=0 in 0.053 seconds
7. concat
concat(”문자열”) : 문자열 합치기
{
let str1 = '안녕하세요';
let str2 = '나는 홍길동';
let msg1 = str1.concat(str2);
let msg2 = str1+str2; // 이거와 같고 배열에 많이 쓴다.
console.log(msg1);
console.log(msg2);
}
=>결과값
[Running] node "/workspaces/codespaces-blank/index.js"
안녕하세요나는 홍길동
안녕하세요나는 홍길동
[Done] exited with code=0 in 0.064 seconds
8. trim
trim() : 문자열 기준 양쪽 공백 제거
trimStart() : 문자열 기준 앞부분만 공백 제거
trimEnd() : 문자열 기준 뒷부분만 공백 제거
{
/* trim,trimStart,trimEnd */
let str = ` 안녕하세요 나는 길동 `;
let str1 = str.trim();
let str2 = str.trimStart(); // 앞부분만 공백 제거
let str3 = str.trimEnd(); // 뒷부분만 공백 제거
console.log(str);
console.log(str1);
console.log(str2);
console.log(str3);
}
=>결과값
[Running] node "/workspaces/codespaces-blank/index.js"
안녕하세요 나는 길동
안녕하세요 나는 길동
안녕하세요 나는 길동
안녕하세요 나는 길동
[Done] exited with code=0 in 0.096 seconds
------------------------------------------------------------------------
/* 문자열 갯수로 반환해서 결과값 다시보기 */
{
/* trim,trimStart,trimEnd */
let str = ` 안녕하세요 나는 길동 `;
let str1 = str.trim();
let str2 = str.trimStart(); // 앞부분만 공백 제거
let str3 = str.trimEnd(); // 뒷부분만 공백 제거
console.log(str.length);
console.log(str1.length);
console.log(str2.length);
console.log(str3.length);
}
[Running] node "/workspaces/codespaces-blank/index.js"
34
11
18
27
[Done] exited with code=0 in 0.062 seconds
9. split
split() : 특정 대상으로 분리해서 배열로 처리
csv파일: 데이터 목록이 포함된 일반 텍스트와 쉼표 분리하기, 데이터를 가져왔을 때
{
let tags = '과자,사탕,옥수수,아이스크림';
let arr = tags.split(',');
console.log(typeof(arr));
console.log(arr);
for(let item in arr){ // 배열만 사용가능 : 배열의 인덱스 번호 출력
console.log(`${item}`);
}
for(let item of arr){ // 배열만 사용가능 : 배열의 속성 출력
console.log(`${item}`);
}
}
=>결과값
[Running] node "/workspaces/codespaces-blank/index.js"
object
[ '과자', '사탕', '옥수수', '아이스크림' ]
0
1
2
3
과자
사탕
옥수수
아이스크림
[Done] exited with code=0 in 0.056 seconds
10. replace
replace() : 문자를 바꿔줌(교체)
{
let str = 'I like orange';
let str1 = str.replace('orange','pink')
let str2 = str.replace('I','You')
console.log(str1)
console.log(str2)
}
=> 결과값
[Running] node "/workspaces/codespaces-blank/index.js"
I like pink
You like orange
[Done] exited with code=0 in 0.054 seconds
11. padStart,padEnd
replace() : 문자를 바꿔줌(교체)
{
/*
1. 데이터베이스에서 상품코드 넣으면 자리수 채울때
2. 데이터베이스에서 날짜 넣으면 자리수 채울때
*/
let str1 = '4';
let str2 = str1.padStart(5,0);
let str3 = str1.padEnd(5,0);
console.log(str2);
console.log(str3);
}
[Running] node "/workspaces/codespaces-blank/index.js"
00004
40000
[Done] exited with code=0 in 0.086 seconds