프로그래밍/JS 11

[JS] ... (Three Dots) Operator

ES6에서 추가된 문법 1. Rest Operator 객체 혹은 배열의 남은 값을 변수에 할당할 때 const obj = {a: 1, b:2, c:3, d:4, e:5}; const {a, b, ...restObj} = obj; // a와 b를 제외한 나머지 값들이 restObj에 객체로 할당된다 2. Spread Operator 객체 혹은 배열의 값을 합칠 때, 혹은 복사할 때 모든 값들만 꺼내서 사용할 때 (단, 값은 one depth는 deep copy지만 two depth 이상부턴 swallow copy가 된다.) const arr = [1,2,3]; const arrCopy = [...arr, ...arr]; // [1,2,3,1,2,3,] // 객체의 값들을 parameter로 대응해서 넘길 ..

프로그래밍/JS 2019.11.20

8장) 브라우저 객체 모델

BOM은 웹 페이지 콘텐츠와 무관하게 브라우저 기능을 노출하는 객체이다. 제대로 된 명세가 없는 기간이 길었기에 브라우저 제조사들은 자신들이 원하는 대로 BOM을 확장했고, 이는 흥미로운 결과를 낳기도 했지만 문제도 많이 생겼다. HTML5 명세에서 BOM의 주요 부분을 다룹니다. 8.1 window 객체 BOM의 핵심에는 브라우저의 인스턴스인 window 객체가 있다. window 객체는 브라우저 창의 자바스크립트 인터페이스 구실을 하고 다른 한 편으로는 ECMAScript Global 객체로 기능한다. 따라서 웹 페이지에서 정의한 모든 객체, 변수, 함수에서는 window가 Global 객체 구실을 하며 window에 정의된 parseInt()등의 메서드를 이용한다. 8.1.1 전역 스코프 전역에서 ..

프로그래밍/JS 2016.04.06

7장) 함수 표현식

이 장에서 다루는 내용 - 함수 표현식의 특징 - 함수와 재귀 - 클로저를 이용한 고유 변수 5장에서 배웠듯이 함수를 정의하는 방법은 함수 선언과 함수 표현식 두 가지이다. 함수 선언의 뚜렷한 특징은 '함수 선언 끌어올림'이다. 함수 표현식에는 여러 가지 형태가 있는데 가장 많이 쓰이는 형태는 다음과 같다.var funcName = function (arg) { };이렇게 생성된 함수는 함수 이름이 없으므로 익명 함수로 간주한다. (람다 함수라고 부르기도 함.)따라서 익명함수의 name 프로퍼티는 빈 문자열이다. if문 안에서도 함수 선언으로 정의된 함수는 끌어올려지므로 의도와 다르게 작동할 수 있어 주의해야 한다. 7.1 재귀재귀 함수를 사용할 때는 항상 함수 이름 대신 arguments.callee(..

프로그래밍/JS 2016.03.30

5장-6,7) 참조타입 - 원시 래퍼 타입, 내장된 싱글톤 객체

5.6 원시 래퍼 타입Boolean, Number, String은 원시 값을 편리하게 조작하기 위해 디자인된 참조 타입이다.이들은 다른 타입과 같이 동작하지만 대응하는 원시 값과 연관된 독특한 동작 방식도 가진다.원시 값을 읽을 때마다서 이에 해당하는 래퍼 타입이 이면에서 생성되므로 메서드를 사용할 수 있다.ex)var s1 = "some";var s2 = s1.substring(2);이 코드에서 s1은 원시 값인 문자열을 담고 있는 변수다.다음 행에서 s1은 substinrg()메서드를 호출하고 결과를 s2에 저장한다.원시 값은 객체가 아니므로 논리적으로 메서드를 가질 수 없지만 별다른 코드 없이도 메서드를 호출했다.사실은 이면에서 이를 수행되게 만드는 많은 코드가 실행된다.두 번째 줄에서 s1에 접근..

프로그래밍/JS 2016.02.01

5장-3,4,5) 참조 타입 - Date 타입, RegExp 타입, Function 타입

5.3 Date 타입자바 초기 버전의 java.util.Date에 기반한다.따라서 날짜와 시간을 저장할 때 1970년 1월 1일 0시부터 몇 밀리초가 지났는지 나타내는 숫자를 사용한다.1970년으로 부터 285,616년 전후의 날짜를 정확히 표현할 수 있다.생성 방법var now = new Date();매개변수를 넘기지 않으면 현재 날짜와 시간이 저장된다.밀리초를 넘기면 특정 날짜와 시간을 나타낼 수 있는데 이 계산은 복잡하므로이를 계산하는 메서드 Date.parse()와 Date.UTC()를 보통 사용한다.Date.parse()날짜를 표현하는 문자열을 받아 해당 문자열을 밀리초 표현으로 변환한다.- 월/일/년- 월이름 일, 년- 요일 월이름 일 년 시:분:초 타임존- YYYY-MM-DDTHH:mm:ss..

프로그래밍/JS 2016.01.20

5장-1,2) 참조 타입 - Object 타입, Array 타입

참조 값(객체)이란 특정 '참조 타입'의 인스턴스이다.ECMAScript에서 참조 타입은 데이터와 기능을 그룹으로 묶는 구조이다.참조 타입을 '클래스'라 부르는 것은 잘못된 표현이다.참조 타입은 객체가 가져야 할 프로퍼티와 메서드를 정의한다는 점 때문에 '객체 정의'라 불리기도 한다.(ECMAScript는 객체 지향 언어이지만 클래스나 인터페이스 같은 구조를 갖고 있지 않다. 객체(참조 값)는 특정 참조 타입의 '인스턴스'이다.객체를 생성할 때는 new 연산자 뒤에 '생성자'(객체를 생성하는 함수)를 쓴다.ex)var person = new Object();-> 참조 타입 Object의 인스턴스를 생성해서 변수 person에 할당한다. 5.1 Object 타입객체 생성법1. new 연산자와 Object ..

프로그래밍/JS 2016.01.20

6장-1) 객체 지향 프로그래밍 - 객체에 대한 이해

OOP는 일반적으로 클래스를 통해 같은 프로퍼티와 메서드를 가지는 객체를 여러 개 만든다는 특징이 있다.하지만 ECMAScript에는 클래스라는 개념이 없으며 ECMAScript의 객체는 다른 객체 지향 언어와 다르다.ECMAScript의 객체는 이름-값 쌍의 순서없는 그룹이며 각 값은 데이터나 함수가 될 수 있다. 6.1 객체에 대한 이해 객체 리터럴 표기법var person = {name: "sovovy",sayName: function(){alert(this.name);} } 6.1.1 프로퍼티 타입 (ECMAScript 5판 기준)프로퍼티의 특징을 내부적으로만 유효한 속성에 따라 설명한다.이 속성들은 JS엔진 내부에서 구현한 것으로 정의했다. (따라서 JS에서 직접적으로 접근하는 방법은 없다.)-..

프로그래밍/JS 2015.11.23

4장) 변수와 스코프, 메모리

4.1 원시 값과 참조 값ECMAScript의 변수는 원시 값과 참조 값 타입의 데이터를 저장할 수 있다.원시 값: 단순한 데이터 (Undefined, Null, Boolean, Number, String) (스택에 저장된다.) 참조 값: 여러 값으로 구성되는 객체를 가리킴 변수에 값을 할당하면 원시 값인지 참조 값인지 판단한다.- 원시 값은 변수에 저장된 실제 값을 조작한다. (값으로 접근한다.)- 참조 값은 메모리에 저장된 객체이다. 메모리 위치에 직접 접근하는 것이 안되므로 객체의 메모리 공간을 직접 조작하는 것은 불가능하다. 따라서 객체를 조작 할 때는 객체에 대한 '참조'를 조작한다. (참조로 접근한다.) 4.1.1 동적 프로퍼티 값이 변수에 저장되고 난 후 원시 값과 참조 값이 할 수 있는 일..

프로그래밍/JS 2015.11.22

3장) 언어의 기초

웹 브라우저에서 가장 널리 구현된 ECMAScript버전은 ECMA-262 3판이므로아래 내용은 ECMAScript 3판에서 정의된 내용을 바탕으로 한다. 3.1 문법c와 비슷하다.어디서든 대소문자를 구분한다. 식별자 : 변수나 함수, 프로퍼티, 함수 매개변수의 이름 (camelCase 방식으로 쓰는 것이 좋다.) 키워드와 예약어를 사용하지 못한다. - 첫 번째 문자는 반드시 글자나 _ , $ 중 하나여야 한다.- 다른 문자에는 글자나 _ $ 숫자를 자유롭게 사용할 수 있다. 주석 : c와 같다. ( // 혹은 /* */ ) 스트릭트 모드 : 자바스크립트를 엄격하게 디버깅한다. - 전체 스크립트 위 혹은 함수 첫 줄에 "use strict"; 를 쓰므로서 사용할 수 있다. 3.3 변수변수에 어떤 타입의 ..

프로그래밍/JS 2015.11.20

2장) HTML속의 자바스크립트

2.1 일반적으로 자바스크립트 코드는 모두 바로 이전에 작성한다. 2.3 문서 모드'쿽스 모드', '표준 모드', '거의 표준 모드'독타입을 선언하지 않으면 쿽스모드를 사용하는데, 이는 브라우저마다 많이 다르므로 좋지 않은 방법이다. 2.4 요소브라우저가 스크립트를 지원하지 않거나, 스크립트 지원이 꺼져 있을 때 표시된다. [출처: 프론트엔드 개발자를 위한 자바스크립트 프로그래밍]

프로그래밍/JS 2015.11.18