23/10/31 til 호이스팅 , 오브젝트 메서드, 생성자함수 ,...매개변수

2023. 11. 1. 08:28카테고리 없음

 호이스팅

호이스팅은 스코프 단위로 일어난다. 

 

var는 펑션안에서만 지역변수로서 작동한다.전역에서 지역변수를 끌어올수없다.

포문 이프문 와일문등의 var선언문은 전역변수로서 작동한다.

 

let 과 const는 함수 이프문 포문 와일문 등등 전부에서 지역변수로서 작동된다.

 

~~~~~~~~~~~~~~~~~~~~~~~

 

function user( name , age){

      this.name = name

      this.age = age

}

 

let user1 = new user('mike' , 30)

let user2 = new user('jane' , 22)

let user3 = new user('tom' , 17)

 

// 펑션이라는 와플 툴(생성자함수)를 new를 이용하여 각각 새로운 객체 3개를 만들어낸다. 

//이때 this는 각각 유저 원 투 쓰리를 의미한다.

//새로운 객체를 만드는 행위이기 때문에 new를 빼면 그냥 그 펑션에 인자를 넣은 값으로 호출

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

const user = {

    name : 'mike',

     age : 30

}

 

const cloneuser = user ; 

 

//이러면 클론유저가 유저를 복사한것인가? 객체의 메모리 주소만 같고 있는 유저를 같고 왔기때문에

같은 객체를 참조한다. 이러면 저 객체를 변경하면 유저랑 클론유저가 다같이 바뀌는 위험

 

const newuser = object.assign({}, user);

//이럴때 어싸인을 사용한다. 유저객체의 값을 똑같이 가지는 새 객체를 만든다. 중괄호 안에 새 키와 

//벨류를 넣으면 새객체에 적용된다. 중복된 키에 따른 벨류는 유저의 객체의 해당 내용으로 덮어쓰기 당한다.

 

~~~~~~~~~~~~~~~~~~~

 

const user = {

    name : 'mike',

     age : 30

    gender : 'male'

}

 

object.keys(user) 

// [name , age , male] 해당객체의 키들만 가져다 배열만든다.

object.values(user) 

// ['mike', 30 , ' male']  이건 벨류값들만 가져와 배열을 만든다.

object.entries(user) 

// ['name' , 'mike'],   [  'age' ,'30' ] ,    ['gender' , 'male']  객체의 키와 밸류 쌍을 각각 배열로 가져온다.

 

~~~~~~~~~~~~~~~~~~~~~

 

let n = 'name' ; 

let a = ' age' ; 

 

const user = {

     [n] : 'mike',

     [a] : 30 , 

};

//이렇게 하면 선언할당한 값들을 유저의 키들로 갖다 쓸수 있다.

 

~~~~~~~~~~~~~~~~~~~

function makeobj(key , val){

           return {

           [key] : val,

  }

}

 

const obj = makeobj('나이' , 33);

//이런식으로 함수화 시켜놓으면 이 객체를 비슷한 객체 만들기 용이하다.

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~

let arr = [

    [ ' mon' , '월']

    [ ' tue' ,  '화' ]

]

const result = object.fromentries(arr)

// {mon: '월" , tue: '화'} 라는 오브젝트로 출력된다. 배열을 오브젝트로 만드는 메서드

 

~~~~~~~~~~~~~~~~~~~~~~~~~~

 

function showname(...name){

          console.log(name);

}

show.name();     // [ ]

showname( ' mike ' ) // ['mike']

showname( ' mike ' , ' tom ' ) // ['mike', 'tom']

// 함수의 파라미터 자리에 땡땡땡 변수를 쓰면 함수를 호출할때 인자의 개수에 상관없이 잘 호출된다.

//이것이 나머지 매개변수

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~