Javascript 개발 2일차

박우혁·2023년 11월 21일
0

형식은 

if (조건이 true or false 로 나오게 짜주기 ) {
    //main logic
  }

if-else 문 

if (조건이 true or false 로 나오게 짜주기 ) {
   //main logic#1
 }
else {
  //main logic#2  ----->if 조건이 성립하지 않는 경우에 실행 되는 로직.
}

if-else if -else 문 

if (조건이 true or false 로 나오게 짜주기 ) {
   //main logic#1
 }
else if {
  //main logic#2  ----->if 조건이 성립하지 않는 경우에 실행 되는 로직.
}
else {
 //main logic#3 ----->else if 가 실행되지 않으면 마지막으로 실행되는 로직.
}

ex)

let x = 5;

if (x > 0) {
  console.log("1");
} else if (x >= 0 && x < 10) {           //&& 는 조건이 둘다 만족해야 함
  console.log("2.");
} else {
  console.log("3");
}

----------> 2번이 실행됨! 


switch 문

let fruit ="사과";

switch(fruit) {
        case "사과" : 
              console.log("사과 입니다.");
              break;      --------------->//반드시 break 적어야 조건 만족하면 빠져 나옴.
        case "바나나" : 
              console.log("바나나 입니다.");
              break;
        case "딸기" : 
              console.log("딸기 입니다.");
              break;
        default : --------->위 조건이 다 아닌경우. 
              console.log("아무것도  아닙니다.");
              break;

}



중첩 조건문
ex) 

let age =20;
let gender = "남성";

if(age >=18){
   if(gender === "여성"){
      console.log("성인 여성입니다");
   }
   else {
       console.log("성인 남성입니다");
   }
}
else{
   if(gender === "여성"){
      console.log("미성년 여성입니다");
   }
   else {
       console.log("미성년 남성입니다");
   }
}

// && 조건 
let x = 10;

x>0 && console.log('x는 상수 입니다');   //x>0 이면 콘솔 실행


// 삼항 연산자 와 단축평가

let a;
let b = a || 20 ;           
// a는 선언 하지 않았음. 즉 undefined 이고  b 는 a가 undefined 이면 20 이 들어간다. 이렇게 이해하기

console.log(b);


// falsy 한 값과 turthy 한 값?

if(0) {
    console.log("hello")
}

if(null) {
    console.log("hello")
}

if(undefined) {
    console.log("hello")
}

if(false) {
    console.log("hello")
}

if(NaN) {
    console.log("hello")
}

if("") {
    console.log("hello")
}

if(true){
    console.log("true값 입니다")
}

--------------------------->즉,  true 조건을 제외한 나머지 조건은 falsy 한 값이라고 한다. (선언이 안된?)


객체


// 객체 생성

let person = {
    name:"홍길동",
    age:21,
    gender:"남자"
}

// Object.key(객체 이름) 값을 활용해서 key값을 불러주기

let hong = Object.keys(person)

console.log(hong);

// Object.values(객체 이름) 값을 활용해서 value값을 불러주기

let hongv= Object.values(person);

console.log(hongv);

// Object.entries(객체 이름) 값을 활용해서 2차원 배열로 만들어주기.

let entry = Object.entries(person) 

console.log(entry);   //[ [ 'name', '홍길동' ], [ 'age', 21 ], [ 'gender', '남자' ] ]
 
// Object.assign(객체이름) 말그대로 복사 해주는것. (그대로)

let entt = {}        //빈 객체 선언시 반드시 {} 해줘야 함.

Object.assign(entt,person);     //여기서는 (채울 객체이름 , 대상 객체이름)

console.log(entt);  


// 객체 비교 

let pers1 = {
    name:"홍길동",
    age:21,
    gender:"남자"
}

let pers2 = {
    name:"홍길동",
    age:21,
    gender:"남자"
}

let str1 ='aaa';
let str2='aaa';
console.log(pers1 === pers2);   //false 값이 나오는 경우는? 객체는 각 저장된 공간의 주소값을 가지구 있는데, 각 객체를  선언하고 저장된 주소값이 다르기 때문
console.log(str1 === str2)  //이건 값을 직접 가지기 때문에 true 가 나오는 것.


//만약에 두 객체를 같게 보고 싶으면?
console.log(JSON.stringify(pers1) === JSON.stringify(pers2))  //두객체의 저장된 문자 길이의 값이 같다.


// ...:spread operator ->객체를 풀어 헤칠때 쓰는 방법 {} 이걸 해체한다고 보면됨
let spread = {...pers1 , ...pers2}   //이러면 두개 객체를 풀어서 다시 하나의 객체를 만듬
console.log(spread) 






// 배열의 기본 생성

let fruits =["사과","바나나","오렌지"]

// 배열 호출 방법
console.log(fruits[0])

// 배열의 크기 지정

let arr = new Array(5)  // [0,1,2,3,4]-5개 의 인덱스를 가진 배열.

//배열 매소드 
//push 가 있다.

fruits.push("오렌지");    //오렌지 요소를 추가하기. (끝에 추가됨)

//pop 메소드 -------->배열 속 삭제. 순서는 최근 추가된 순서로

fruits.pop();

//shift 메소드  ---------->이번엔 맨 앞쪽에 있는 요소를 삭제

fruits.unshift()
console.log(fruits)

//unshift 메소드 ---------->맨앞쪽으로 요소 추가

fruits.unshift('용과')
console.log(fruits)

//splice 메소드 

fruits.splice(1,1,'망고')  //(요소를 넣고싶은 인덱스 위치 , 넣고 싶은 요소부터 교체해주는 갯수 , 넣고싶은 요소)
console.log(fruits)       // [ '사과', '망고', '오렌지' ] 출력됨

//slice 메소드

let slice = fruits.slice(1,2)  //(자르기 시작할 인덱스 위치 , 자르는 인덱스 갯수(이건 맨 앞부터 두번째 ))





배열의 콜백 메소드

//foreach , map , filter , end 이렇게 4가지가 있다.

//foreach 부터 사용하자면?

let numbers = [1,3,4,6,2];

numbers.forEach(function(item){   ///이렇게 메소드 안에 함수가 들어 가는것을 "콜백 함수" 라고 합니다.
    console.log('item ->',item)
})                                /// 배열.foreach(function(item-->배열의 인덱스 요소들을 넣어줌 ){ return 필요없음!})


//map?

let newnum = numbers.map(function(item){
    return item*2  //가공한 값이 들어갈 새로운 변수가 필요 
})                /// foreach 와는 다르게, 새롭게 선언을 해주고, 반드시 리턴 값을 가짐.  (그리고 반드시 배열 값만큼 내뱉는당.)

console.log(newnum) 


//filter 

let filter_num = numbers.filter(function(item){
    return item === 6           //map 과는 달리 반드시 return 값에 조건을 붙여줘야 함
})

console.log(filter_num)


// find 

let find_num = numbers.find(function(item){
    return item>0               // return 에서 조건을 만족하는 배열중에 가장 앞에있는거 하나만 뽑아냄
})

console.log(find_num);   //배열이 벗겨진 상태로 반환.

//while 문

while(조건){
     //로직
     //증감 (여긴 반드시 써줘야함)
 }


//while 문을 활용하여 3초과 100미만의 숫자중 5의 배수만 출력 하는 예

let i =4

while(i<100){
    if(i % 5 ===0 && i>=5){
        console.log(i)
     }
    i++;
}

//do ~ while 문

do{
  //메인로직
  //증감
} while(조건)

 let a= 0;

do{
    console.log(a)
     a++
} while(a<15)


//for break 문 

for(i=0; i<10 ; i++){
    if(i ===5 ){
        break        //5가 딱 되면 멈춘다 그래서 출력은 0,1,2,3,4
    }
    console.log(i);
}          

//for continue 문

for(i=0; i<10 ; i++){
    if(i ===5 ){
        continue       //5가 딱 되면 5만 넘어가고 다 찍임 10 전까지.
    }
    console.log(i);
}          
profile
코딩꿈나무 입니다.

0개의 댓글