자바스크립트의 함수는 다른 언어의 함수와 마찬가지로 코드의 묶음으로도 역할을 하지만, 모듈화 / 클로저 / 객체 생성 등의 역할을 하기도 한다. 자바스크립트에서 함수를 생성하는 방법은 3가지가 있다. 1. 함수 선언문 함수 리터럴 형태로 함수를 선언한다. function func(a, b) { return a + b; } // use function var result = func(1,2); // result = 3 function 키워드, 함수 이름, 매개변수와 함수 몸체로 구성된다. 함수 이름은 원래 생략하여 익명함수로도 리터럴 함수를 생성할 수 있지만, 함수 선언문 방식으로 함수를 선언할 때는 함수 이름을 반드시 입력해야한다. ( 보통 익명함수는 콜백함수를 인자로 넘길 때 많이 사용한다. ) // ..
기본타입 = 숫자, 문자열, 불린값 각 기본타입은 객체가 아님에도 각 타입에 맞는 메서드를 갖고 있다. 이때는 메서드 호출시 순간적으로 기본타입을 참조타입으로 바꾸었다가 메서드 호출이 끝나면 다시 기본타입으로 바뀌게 된다. + 연산자 자바스크립트의 + 연산자는 (숫자) + (숫자) 만 숫자 연산으로 계산하고, (숫자) + (문자열) 이나 (문자열) + (문자열) 은 문자열 연결로 계산한다. typeof 연산자 피연산자의 타입을 문자열 형태로 리턴한다. 이때 null 타입은 'object' 로 출력하고, 함수 타입은 'function' 으로 출력하는 부분에 주의한다. 배열은 'object'로 출력한다. == 연산자와 === 연산자 == 연산자는 두 피연산자의 타입이 다를 경우, 타입변환을 거친 다음 비교하..
-배열 자바스크립트의 배열은 C의 배열과는 조금 다르다. 오히려 파이썬의 리스트에 더까운데, 그렇다고 파이썬의 리스트와 완전히 같은 것도 아니다. 배열의 생성은 배열 리터럴이나 생성자 함수를 이용한다. 배열 리터럴은 [] 를 이용하여 표기한다. 파이썬과 똑같다. var a = ['apple', 10, true]; 위와 같이 데이터 형이 통일 되지 않아도 된다. 배열 요소에 접근하여 읽고 쓸 때도, 배열 내 위치 인덱스 값을 이용해 [] 로 접근한다. a[0] = 'orange'; console.log(a[0]); // orange 여기까지는 파이썬의 리스트와 다를 게 없어보인다. 그러나 자바스크립트 배열의 특이한 점은 배열에 동적으로 값을 넣을 때, 인덱스를 신경쓰지 않고 넣을 수 있다는 점이다. var..
-프로토타입 모든 객체는 각자 부모 역할을 하는 객체를 갖고 있는데, 이 객체를 프로토타입이라고 한다. 객체지향 프로그래밍의 '상속'과 유사하다. 간단하게 객체를 만들어서 출력해보았다. 책이 옛날 책이라 그런지, 책 내용과는 달리 크롬에서도 __proto__ 가 아니라 [[Prototype]] 프로퍼티가 보인다. ECMAScript 명세서에 의하면, 모든 자바스크립트 객체는 자신의 프로토타입 객체를 가리키는 [[Prototype]] 프로퍼티를 가진다. 이 프로토타입 객체의 종류는 여러가지가 있는데, 어떤 종류의 객체를 프로토타입으로 가질지는 사바스크립트 룰에 따라 객체를 생성할 때 결정된다. 예시와 같이 객체 리터럴로 생성한 객체는 Object.prototype 객체를 프로토타입 객체로 가진다. 근데 한..
- 객체의 생성 방법 1. Object() 생성자 이용 : var foo = new Object(); 2. 객체 리터럴 방식 이용 : var foo = { "property": value } 3. 생성자 함수 이용 : 객체를 생성하는 생성자 함수를 이용한 개체 생성 - 객체의 프로퍼티 읽고 쓰기 1. [ ] 를 이용한 접근 => 프로퍼티명을 '문자열' 형태로 대괄호에 담아 접근. 프로퍼티명을 그대로 입력하면 그 이름의 변수 값을 toString() 으로 바꾸어 접근하려고 시도하므로 문제가 발생할 수 있다. 프로퍼티명에 변수명으로 쓸 수 없는 특수문자가 있는 경우,대괄호를 이용한 접근만 가능하다. ('-' 등, 책에서는 프로퍼티명이 '표현식' 이거나 '예약어' 일 경우라고 설명하고 있다.) 또 변수의 값을..
1장에서 자바스크립트는 number, string, boolean, null, undefined 이외의 모든 것들은 객체라고 했었다. 자바스크립트의 데이터 타입 종류도 이에 맞게 구분된다. - 기본타입 객체가 아닌 number, string boolean, null, undefined 는 '기본타입' 으로서 그 자체가 하나의 '값'을 나타낸다는 특징이 있다. 자바스크립트의 'typeof' 연산자를 이용해 각 데이터 별 기본타입을 확인할 수 있다. (함수가 아니라 연산자이므로 사용법에 주의) 각 타입별로 알아두면 좋은 부분을 짚고 가보자. -Number 자바스크립트의 모든 숫자형 데이터는 64비트 부동소수점 형태로 저장된다. (C의 double과 유사) 그래서 5/2 의 연산값이 c와 다르게 2가 아니라 ..
Inside Javascript 책의 1, 2장을 읽고, 책을 참고하여 직접 정리한 내용입니다. 객체 자바스크립트에서 객체가 아닌 것 : number, boolean, string, null, undefined 그 이외에는 모두 객체이다. 하지만 기본 데이터 타입인 number, boolean, string 은 객체처럼 다룰 수도 있다. 함수 자바스크립트에서는 함수도 객체이다. 함수는 조금 특별하게 '일급객체 (First Class Object)' 로 다뤄진다. 프로토타입 모든 객체는 '프로토타입 객체'와 연결(Link)되어있다. 어떤 유튜브 영상에서는 프로토타입을 '유전자'로 묘사하기도 했다. 실행 컨텍스트와 클로저 자바스크립트는 실행 컨텍스트를 만들고 그 안에서 실행되는데, 이 실행 컨텍스트가 갖는 ..
학교 선배님의 추천으로 '커리어 스킬'을 알게 되었다. 작년부터 추천해주셨던 책인데 올해가 되어서야 읽게 됐다. 분명 개발자를 위한 책인데, 읽다보니 꼭 개발자가 아니더라도 도움될 만한 내용이 많아서 놀랐다. 앞 부분은 신입 프로그래머를 위한 내용부터, 주니어 프로그래머를 위한 내용들 위주로 서술되있다. 그리고 뒤로 갈수록 '인생'에 대한 조언이 점점 더 많아지는데, 개인적으로 정말 유익했었다. 처음 이 책을 사고 싶다고 생각한 큰 이유는 개발자의 진로를 알고 싶었기 때문이다. 당장 1학년 1학기가 끝날 때까지만 해도 프로그래머 = 프로그램 만드는 사람 게임 프로그래머 = 게임 만드는 사람 이것 밖에 몰랐다. 그냥 졸업하면 뭔가 프로그램을 만드는 사람이 되는 건가 싶었다. 그러다 카카오의 채용 공고를 보..