JavaScript 7

자바스크립트 : 콜백함수

콜백 함수 다른 함수에 매개변수로 넘겨준 함수를 의미합니다. 매개변수로 넘겨받은 함수는 넘겨받고, 나중에 호출(call back)한다는 것이 콜백함수의 개념입니다. 위에 예와 같이 loveSWF, linkSWF, danceSWF 3개의 함수를 선언하고 loveSWF 함수를 호출할 때 매개변수로 count에 숫자값, link와 dance에 각각 linkSWF와 danceSWF 함수를 전달했습니다. 여기서 linkSWF함수와 danceSWF함수가 콜백함수 인 것입니다. loveSWF함수가 먼저 호출되고, 매개변수로 들어온 count 값에 따라 linkSWF와 danceSWF함수 둘 중 한가지가 나중에 호출됩니다. 위 코드는 count가 5이기 때문에 linkSWF가 실행이 됩니다.

자바스크립트 : 원시 값과 객체의 비교

자바스크립트가 제공하는 7가지 데이터 타입은 크게 원시 타입과 객체 타입으로 구분할 수 있습니다. 원시 타입과 객체 타입은 근본적으로 3가지 측면에서 다릅니다. • 원시 타입의 값, 즉 원시 값은 변경 불가능한 값(immutable value)입니다. 이에 비해 객체 타입의 값, 즉 객체는 변경 가능한 (mutable value)입니다. • 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장됩니다. 이에 비해 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장됩니다. • 원시 값을 같는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달됩니다. 이를 값에 의한 전달(pass by value)이라고 합니다. 이에 비해 객체를 가리키는 변수를 다른 변수에 할당..

자바스크립트 : 객체 리터럴

객체란? 자바스크립트는 객체(object)기반의 언어이며 원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)들은 모두 객체 입니다. 원시 타입(primitive type)은 단 하나의 값만 나타내지만 객체 타입(reference type)은 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조입니다. 또한 원시 타입의 값은 변경 불가능한 값(immutable value)이지만 객체 타입의 값은 변경 가능한 값(mutable value)입니다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며 프로퍼티는 키(key)와 값(value)으로 구성됩니다. 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있습니다. 자바스크립트의 함수는 일급 객체이므로 함수도 ..

자바스크립트 : 제어문 (JavaScript Iteration)

제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어할 수 있습니다. 블록문 블록문(block statement)은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 합니다. 자바스크립트는 블록문을 하나의 실행단위로 취급합니다. 블록문은 단독으로 사용할 수도 있으나. 일반적으로 제어문이나 함수를 정의할 때 사용하는 것이 일반적입니다. 블록문은 언제나 문의 종료를 의미하는 자체 종결성을 갖기 때문에 블록문의 세미콜론을 붙이지 않습니다. 조건문 조건문(conditional statement)은 주어진 조건식(conditional expression)의 평가 결과에 따라 코드 블록(블록문)의 실행을 결정합니다. 조건식은 불리언 값으로 평가될 수 있는 표현식입니다. 자바스크립트는 if..

표현식과 문

값 값(value)은 표현식(expression)이 평가 되어 생성된 결과를 말합니다. 평가(evaluate)란 식을 해석해서 값을 생성하거나 참조하는 것을 의미합니다. 모든 값은 데이터 타입을 가지며 메모리 공간에 2진수 (비트의 나열)로 저장된다. 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름이라고 전 포스트에서 이야기했습니다. 따라서 변수에 할당 되는 것은 값입니다. 변수 이름 sum이 기억하는 메모리 공간에 저장된 것은 10 + 20 이 아니라 값 30입니다. 따라서 10+20은 할당 이전에 평가되어 값을 생성해야 합니다. 값을 생성하는 가장 기본적인 방법은 리터럴을 사용하는 것입니다. 리터럴 리터럴은 사람이 이해할 수 있는 문자 또는 ..

자바스크립트 변수

변수란 무엇인가? 왜 필요한가? 변수는 프로그래밍 언어에서 데이터를 관리하기 위한 핵심 개념입니다. 자바스크립트 엔진이 위 자바스크립트 코드를 계산하려면, 먼저 10, 20, + 라는 리터럴과 연산자(literal, operator)의 의미를 알고 있어야 하며, 10 + 20이라는 표현식(expression)의 의미도 해석(parsing)할 수 있어야 합니다. 자바스크ㅡ립트 엔진이 10+20이라는 식의 의미를 해석하면 + 연산을 수행하기 위해 먼저 +연산자의 왼쪽 숫자(10), 오른쪽 숫자(20)의 값을 기억합니다. 피연산자 10과 20은 2진수의 임의의 메모리 공간에 저장되고 CPU는 이 값을 읽어들여 연산을 수행합니다. 연산결과로 생성된 숫자값 30도 2진수의 임의의 메모리 공간에 저장됩니다. 성공적..

자바스크립트 개발환경과 실행환경

자바스크립트 개발환경 자바스크립트는 브라우저 환경 또는 Node.js 환경에서 실행할 수 있습니다. 브라우저는 HTML, CSS, JS를 실행해 웹페이지를 브라우저 화면에 렌더링하는 것이 주목적입니다. Node.js는 브라우저 외부에서 자바스크립트 실행 환경을 제공하는 것이 주목적입니다. 따라서 브라우저와 Node.js 모두 자바스크립트 코어인 ECMAScript를 실행할 수 있지만 브라우저에서 Node.js 고유의 API를 실행하거나 Node.js에서 브라우저의 클라이언트 사이드 Web API를 실행할 수 없습니다.