object는 한 변수에 한값만 할당하는 primitive 타입과 달리 여러 데이터를 할당해 사용할수 있는 타입이다. 여러데이터를 { key : value } 형태로 할당할수 있고 . 을 통해 접근한다. - dynamic typing javascript는 dynamic typing 언어이기 때문에, object 선언시에 만들어놓지 않은 key에도 값을 할당하고 삭제할수있다. sw에 hasjob 인 key가 없음에도 값이 출력되었다. - computed properties ( 계산된 프로퍼티 ) object에 할당한 변수들에 대해 접근하는 또 다른 방법으로 computed properties가 있다. 다음과 같이 object['key'] 로 접근하며, key값에 string형태를 넣어야 한다. 이것도 동일..
다른 언어들과 같이 javascript에도 클래스가 존재한다. 상속, 함수 재정의, get / set 함수 등 다른 객체지향 언어의 클래스의 특성과 비슷하면서도 return값을 정의하지않는등 javascript 언어자체의 특성에 따라 살짝씩 다른점이 있는 클래스에 대해 알아보자 - class class는 어떤 물체의 행동과 특성을 정의하여 객체화 시킨것이다. 이름, 나이 등등 물체의 특성은 field로, 동작은 method로 만든다. 1번 코드처럼 클래스를 정의하고 2번 코드처럼 생성자를 이용해 변수를 메모리에 할당하게 된다. - constructor ( 생성자 ) 먼저 생성자이다. 다른 객체지향 언어처럼 this. 를 통해 자신에 대해 참조할수 있다. 이처럼 생성자 함수의 매개변수로 전달한 값이 bir..
javascript에서 함수를 사용하는 방법에 대해 알아보자 다른 함수들과 똑같이 파라미터, return값으로 이루어진다. 1. 하나의 함수는 하나의동작만 수행한다. 2. 함수의 이름은 명사가 아닌 동사여야 한다. 특이한점은 javascript에 type이 없기때문에 매개변수와 리턴값에 type제한이 없어 제약이 적지만, 잘못 사용될 가능성이 있다. - parameters ( passed by values, passed by reference ) object는 메모리에 참조하는 형태로 저장되고, 나머지 변수들은 메모리에 바로 올라간다. 때문에 object가 함수 파라미터로 들어갈경우 참조가 그대로 전달되어, 함수의 동작에 따라 안의 변수가 바뀔수 있다. 하지만 일반적인 변수는, 값만 전달되어 함수이후 변..
오늘은 javascript가 가장 많이 쓰이면서도, 욕을 먹는 이유인 Dynamic typing에 대해 알아보자 동적 타이핑이란, 라고한다 ㅋㅋ,,, 덧붙이면, 여러가지 서로다른 데이터 타입에 대해 연산이 가능해져버려서, 내가 예상하지 못한 상황에서 에러가 나지않아 더 큰 문제가 생길수 있다는 단점이 있다. 예시를 살펴보자. 먼저 text를 'hello' 라는 문자열로 저장하면 string 자료형으로 저장이 되고. 이를 1로 할당하면 다시 또 number 자료형으로 변한다. 하지만 여기서 string인 '7'과 number인 5를 더하면 javascript 엔진은 string인 '7'에 맞춰 문자열 덧셈으로 인식하고, 5를 문자열로 바꿔 '75' string 이 결과가 되고 string 타입의 '8' 과..
java script 데이터 타입에 대해 아라보자. java script 데이터 타입은 크게 primitive, object, function 총 3가지로 분류된다. 1. primitive : single item - 더이상 작은 단위로 나눠질수 없는 타입으로 number, string, boolean, null, udefined, symbol 등 우리가 다른 언어에서 사용하는 데이터 타입들이다. 개인적으로 C언어에 익숙했을 당시 int, char 처럼 자료형으로 선언을 하지 않는 모습이 굉장히 신기했다. 2. object : box container - single item 들을 여러개 묶어서 한단위로 다룰수있는 데이터 타입. 굉장히 많이 쓰기 떄문에 추후 더 자세히 설명하겠다. 3. function ..
오늘은 javascript의 변수인 let, var 상수인 const 를 알아보자. - let let은 ES6에 추가된 '변수' 로 값을 저장한 값을 수정할수있다. block 안에서 선언한 변수는 block scope를 가져 해당 scope에서만 사용할수 있다. 이처럼 첫번째 block 밖에서 선언한 변수 gname은 block밖에서도 사용하지만, block안에서 선언한 변수 name은 그 밖에서 사용하지 못해 출력이 되지 않았다. 근데 이게 ES6 부터 나온거면, 그전에는 변수를 무엇으로 썼을까? - var var는 ES6 이전 쓰던 '변수'이다. ES6이후로는 변수 선언시 거의 무적권 let을 사용하는데, var가 안쓰이게 된데에는 크게 2가지 이유가 있다. 1. var hoisting 대부분 프로그..