전역 변수의 무분별한 사용은 여러 문제점이 있기때문에 위험하다. 변수의 생명주기 지역 변수의 생명주기 변수의 생명주기 : 변수가 생성되고 소멸되는 주기 // 14-1 // 지역 변수의 생명주기 // 없다면 ..? // 한 번 선언된 변수는 프로그램이 종료되지 않는 한 영원히 메모리 공간을 점유하게 된다. // 전역 변수의 생명주기 === 애플리케이션의 생명주기 function foo() { var x = "local"; console.log(x); return x; } foo(); // local console.log(x); // Uncaught ReferenceError: x is not defined 일반적 : 함수가 종료되면 함수가 생성한 스코프도 소멸 // 14-2 // 지역 변수의 생명주기 //..
스코프란 ? 스코프 : 유효 범위 // 13-1 function add(x, y) { // 매개 변수는 함수 몸체 내부에서만 참조할 수 있다. // 즉, 매개변수의 스코는 함수 몸체 내부. console.log(x, y); return x + y; } add(2, 5); // 매개변수는 함수 몸체 내부에서만 참조할 수 있다. console.log(x, y); // Uncaught ReferenceError: x is not defined // 13-2 // 스코프 : 모든 식별자(변수, 함수, 클래스 이름 등) 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참소할 수 있는 유효 범위 // -> 식별자가 유효한 범위 var v1 = 1; if (true) { var v2 = 2; if (true) ..
함수란 수학에서의 함수 : 입력을 받아 출력을 내보내는 일련의 과정을 정의한 것. 프로그래밍에서의 함수 : 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행단위로 정의한 것. // 12-1 // 함수 : 일련의 과정을 문으로 구현하고 코드블록으로 감싸서 하나의 실행단뒤로 정의한 것. // f(x, y) = x+y function add(x, y) { return x + y; } console.log(add(2, 5)); // 7 관련 용어 매개 변수 : 함수 내부로 전달 받는 변수 인수 : 넘겨주는 값 반환값 : 출력하는 값 특징 함수 = 값 따라서 여러개 존재 가능 → 구별하기 위해 식별자인 함수 이름을 사용 함수 생성 방법 함수 정의를 통해 생성함 어떻게 정의해요 .. ? 다양한 방법으..
자바스크립트는 크게 두 타입으로 나뉜다. 원시 값 : 원시 타입의 값, 즉 변경 불가능한 값 객체 값 : 객체 타입의 값, 즉 변경 가능한 값 그렇다면 이 두 개의 차이점은 무엇인가 .. ? 값 저장에서 차이 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장됨. 반면, 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장됨. 값 전달에서 차이 값에 의한 전달 : 원시 값을 갖는 변수를 다른 변수에 할당하면, 원시 값이 복사되어 전달됨. 참조에 의한 전달 : 객체를 가리키는 변수를 다른 변수에 할당하면 참조 값이 복사되어 전달. 원시 값 변경 불가능한 값 한 번 생성된 원시 값은 읽기 전용 값으로서 변경 할 수 없다. 주의 변경 불가능하다는 것은 변수가 아니라 '값'..
객체의 정의 사람마다 조금씩 다르게 객체를 정의할 수 있겠지만, 자바스크립트에서 말하는 객체란, 키(key)와 값(value)으로 구성된 프로퍼티(Property)들의 집합을 의미한다. 자바스크립트는 객체 기반 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 모든 것이 객체이다. 원시 값을 제외한 나머지(함수, 배열, 정규 표현식 등) 모두 객체이다. 객체의 구성 객체는 프로퍼티와 메서드로 구성된 집합체이다. 프로퍼티 객체의 상태를 나타내는 값(data) 메서드 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior) 상태와 동작을 하나의 단위로 구조화 할 수 있기 때문에 매우 유용하다. 객체 리터럴에 의한 객체 생성 C++나 JAVA 같은 클래스 기반 객체 지향 언어는 클래스를 사전에..
변수 .. 변하는 수를 말하는 건감 .. ? 그렇다. 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 그 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름이다. 메모리는 데이터를 저장 할 수 있는 메모리 셀의 집합체이다. 1바이트 단위로 데이터를 저장하거나 읽어들인다. 각 셀은 고유의 메모리 주소를 갖는데, 이는 메모리 공간의 위치를 나타낸다. 당신들도 알겠지만, 컴퓨터는 0과 1밖에 모르기때문에 모든 데이터를 2진수로 처리한다. 연산의 경우, 임의의 위치(메모리 주소)에 기억(저장)되고 CPU는 이 값을 읽어들여 연산을 수행한다. 근데 직접 접근해서 읽으면 되지 왜 읽기만 해 .. ? 메모리 주소를 통해 값에 직접 접근하는 것은 오류를 발생시킬 가능성이 높은 매우 위험한 일이기 때문이다. (아..
프로그래밍이란 ?프로그래밍은 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다.우리는 프로그래밍을 하기 전 무엇을 실행하고 싶은지 정의할 필요가 있다.다시말해, 해결해야 할 문제를 정확히 이해한 후 적절한 문제 해결 방안을 정의할 필요가 있다는 말이다. 하지만, 대부분의 문제는 복잡하며, 명확하지 않을 수 있다.그렇기에 프로그래밍은 정확하고 상세하게 요구사항을 설명하는 작업이며 그 결과물이 바로 코드이다.컴퓨터는 우리와 달리 논리적, 수학적 사고를 하기 때문에 우리가 프로그래밍을 하기 위해선 컴퓨터적 관점에서 바라보는 것이 중요하다. 이를 도와주는 역할을 하는 것이 프로그래밍 언어 이다.그런데 .. 프로그래밍 언어를 기계가 알아먹을 수 있나 .. ?아니다. 그래서 컴퓨터가 알아 들을 수 있도록 기계어로..