본문 바로가기

JavaScript

(52)
4. 자바스크립트의 변수 스코프(Variable scope)에 대하여 Chapter 4. 자바스크립트의 변수 스코프 자바스크립트는 다른 언어와는 달리,변수가 살아있게 되는(?) 범위가 조금 특별하다.변수 스코프에 대한 개념이 없으면 변수가 이리저리 섞여버릴 것이다.변수 스코프에 대해 알기 위해 자바스크립트 프로그램이 구동되는 원리부터 살펴보자. 자바스크립트의 특징1. 자바스크립트는 변수를 함수 단위로 관리한다. => 다른 프로그래밍 언어들은 중괄호를 사용하여 변수의 영역을 결정하는게 일반적이다. 하지만 JS는 함수를 단위로 해당 함수가 사용하는 변수를 관리한다. 2. 실행시 변수 검색은 렉시컬 영역 기준으로 한다. 렉시컬 영역(scope)이란 어휘적 영역이란 뜻으로 함수가 선언된 위치에 따라 정의되는 영역(scope)을 말한다. 3. 실행 시의 변수 검색은 변수 스코프 체..
3-3. 자바스크립트의 함수 / Argument Chapter 3-3. 자바스크립트의 함수 / ArugumentArgument 함수 인자 Argument parameter : 함수를 정의하는 코드에서 괄호 안에 정의하고 있는 변수 ( = 매개변수 ) arguments : 함수를 호출하는 곳에서 함수에 전달하는 값 ( = 인자 ) argument는 배열과 비슷한 객체를 말한다. 자바스크립트에서는 함수에서 정의하는 매개변수 개수와 실제로 호출에 사용되는 인자의 개수가 반드시 같지 않아도 된다. 함수에서 정의한 매개변수의 수보다 많은 수의 인자값이 전달되면 자바스크립트는 Arguments 객체를 생성하고 ( Arguments 타입의 객체는 함수가 호출되면 자바스크립트가 자동으로 생성하는 객체이다.) 객체의 값을 앞에서부터 차례로 받아서 매개변수에 할당하고 ..
3-2. 자바스크립트 함수 / 정의, 종류 Chapter 3-2. 자바스크립트의 함수 / 정의, 종류함수 정의 3가지 방법 첫번째,123function add(x,y){ return x+y;}cs파싱하는 단계에서 함수 변수인 add가 정의되고, 함수를 호출하면 런타임에 x,y가 정의된다. 두번째,123var add = function(x,y) { return x+y;}cs실행코드블록을 갖는 함수를 정의해 add라는 변수에 할당하고 있다. 이렇게 정의된 함수는 이름이 없다. 이름 대신 변수로 호출할 수 있다. 실행코드로서 런타임에 함수가 정의된다. 세번째,1var add = new Function(“x”, “y”, “return x+y;”);csFunction이라는 생성자(객체)를 사용하여 함수를 정의하는 방법으로 new와 함께 사용해야 한다.이 ..
3-1. 자바스크립트의 함수(Function) / 함수의 역할과 함수 모델링 Chapter 3-1. 자바스크립트의 함수 / 역할, 모델링함수(Function)함수는 자바스크립트를 이해하는데 핵심이 되는 컴포넌트다. 자바스크립트의 함수와 메소드는 전혀 다른 개념이다. 자바스크립트 함수는 메소드 역할을 할 수 있지만 객체지향 프로그래밍의 메소드는 자바스크립트의 함수 역할을 할 수가 없다.code>1234function add(x, y) { var total = x + y; return total;}cs 함수의 역할 세 가지는 다음과 같다. 역할1. 호출 가능한 루틴으로서의 함수 실행코드를 갖고 있으면서도, 일반 객체처럼 멤버를 가질 수도 있다. 역할2. 값으로서의 함수(인자로 전달 가능, 변수에 할당 가능, 다른 함수의 반환값으로 사용가능) 함수를 변수에 담을 수 있다. 역할3. 다..
2. 자바스크립트 자료형 / 원시데이터형 Chapter 2. 자바스크립트의 자료형원시타입 리터럴(literal)표현이 있다. 소스 코드에서 고정된 값을 표현할 때 사용한다. 다른 언어의 원시 자료형과 비슷하지만, 자바스크립트는 모든 값을 객체처럼 다루므로 원시 자료형에도 프로퍼티와 메소드가 존재하는 것처럼 보인다. (null, undefined 제외) 숫자NumberNumber 객체를 이용하여 숫자를 나타낼 수 있다. Number 객체는 원시 타입의 숫자를 객체로 만들기 위한 래퍼(wrapper)다. (그리고 숫자 리터럴을 이용하여 나타낼 수 있다.) Infinity앞에서 본 최대 숫자를 벗어나는 숫자를 표현하기 위해 Infinity라는 값이 정의되어 있다. 0으로 나누면 Infinity가 반환된다. 최소값을 벗어나는 숫자를 표현하기 위해서 -..
1. 자바스크립트의 기본 개념, 프로그램 실행절차 / JavaScript as language Chapter 1. 자바스크립트의 기본 Concept, 프로그램 실행절차자바스크립트는 절차 지향적, 객체 지향적, 함수 지향적 특징을 모두 지원한다. 객체 지향 언어도 클래스 기반과 프로토타입 기반으로 나뉘게 되는데, 자바스크립트는 프로토타입 기반의 객체지향 프로그래밍을 지원한다.(ECMA2016이 발표되면서 클래스라는 개념이 생겨났지만 기본적으로 프로토타입 기반이다.)객체의 원형(프로토타입)을 이용해 객체를 만들고 상속도 프로토타입으로 한다. 자바스크립트에서 프로토타입을 정의할 때는 함수를 이용한다. Data type?Primitive Data type은 5가지!원시데이터타입으로 숫자, 문자열, 불린 그리고 null, undefined 5가지를 정의하고 있다. 그리고 자바스크립트에서는 모든 종류의 숫자..
JavaScript는 세상에서 제일 잘못 이해되고 있는 언어이다. / 자바스크립트란 어떤 언어인가? Javascript: 세상에서 제일 잘못 이해되고 있는 언어 http://javascript.crockford.com/javascript.html :번역 Douglas Crokford : www.crokford.com LiveScript, JScript, ECMAScript로 알려져 있는 Javascript는 세상에서 가장 유명한 언어중의 하나이다. 자바스크립트 인터프리터는 세상의 모든 퍼스널 컴퓨터에 설치되어 사용되고 있다. Javascript의 유명세는 WWW 스크립팅 언어의 막중한 책임을 맡고 있기 때문이다. 이런 유명세에도 불구하고, 오로지 몇몇만이 자바스크립트를 매우 좋은 동적 object-oriented 범용 목적의 프로그래밍 언어로 알고 있다. 이게 어떻게 비밀일 수 가 있는가? 왜 이 언어..
[아홉번째] JavaScript - Web Browser / Ajax , JSON Ajax(Asynchronous JavaScript and XML) 자바스크립트를 통해 내부적으로 통신할 수 있는 것.- 누가 : 사용자들이- 무엇을 : 지금 당장 필요로하지 않는 정보들을- 언제 : 나중에 필요로할 때- 어떻게 : 서버에서 가져와주는 기술 - 왜 : 그게 사용자 입장에서 효율적이니까 Asynchronous JavaScript and XMLXML은 중요하지 않다. 요즘엔 다른 데이터도 다 취급하기 때문에주로 JSON을 많이 사용.비동기적으로 서버와 통신을 하는 방식동기적인 것은 동시적인 것 JSON(JavaScript Object Notation)JavaScript 에서 객체를 만들 때 사용하는 표현식서버와 통신을 통해서 작업을 해야하는 상황에서 유용하고 광범위하게 사용하는 기술이다. j..