javascript (57) 썸네일형 리스트형 값의 할당 "값의 할당" var score; // 변수 선언 score = 80; // 값의 할당 변수 선언문이 실행되면 메모리에 score라는 이름으로 일정 공간을 확보한다. 그 확보된 메모리 공간의 주소를 score라는 이름이 기억됨. score가 기억하는 메모리 공간에 80이라는 숫자값을 할당한다. = 는 할당연산자. 우측에 값이 오고 좌측에는 변수가 온다. 우측의 값을 좌측에 할당하는 것 첫 번째 변수 선언문은(var score;) 할당문은 없지만 암묵적으로 undefined로 초기화된다. 초기화 -> 생성된 변수에 처음으로 값을 할당하는 것 score라는 변수 이름이 메모리 주소가 undefined인 곳을 기억하고 있으니 그 주소에 undefined를 지우고 80을 넣으려 하지만 그렇게는 안된다. unde.. 변수 호이스팅 "변수 호이스팅" console.log(score); // undefined var score = 10; 변수를 선언도 하기 전 참조를 하면 참조에러가 나올 것 같지만 undefined라는 값이 나온다. 이러한 현상을 변수 호이스팅이라고 한다. 호이스팅이란 얘기는 끌어올린다는 얘긴데 흡사 변수의 선언문이 끌어올려진 것처럼 동작한다고 해서 변수의 호이스팅이라고 한다. 자바스크립트 엔진이 자바스크립트를 실행할 때 동기적으로 실행되지만 코드 안에 있는 선언문만을 먼저 실행한다. var score = 10; // 이 문은 var score; // 변수 선언문 score = 10; // 변수 할당문을 합친 것 console.log(score); // undefinde var score; score = 10; 세 .. 변수 선언 "변수 선언" // 변수 선언(변수 선언문) var score; var라는 키워드를 만나면 자바스크립트 엔진은 이 뒤에 오는 이름으로 변수를 생성하라고 인식하게 된다. 이 자바스크립트 문이 실행이 되면 메모리의 빈 공간에 메모리를 확보한다. 이 메모리의 주소를 기억하는 변수가 만들어진다. score는 변수명인데 이 메모리의 주소를 기억하게 됨. 변수를 선언했지만 값은 할당하지 않은 상태다. 초기화를 했지만 값을 할당하지 않아 메모리에 아무것도 없는 것 같지만 undefined라는 자바스크립트의 원시값이 자동으로 할당된다. var score; // ~ ES5 console.log(score); // undefined let a; // ES6~ console.log(a); // undefined const .. 변수 "변수" 프로그래밍 언어는 기억하고 싶은 값을 메모리에 저장하고 저장된 값을 읽어 들여 재사용 하기 위해 변수라는 메커니즘을 제공한다. 변수의 정의를 내려보면 아래와 같다. 변수(Variable)는 하나의 값을 저장할 수 있는 메모리 공간 자체 또는 그 메모르 공간을 식별하기 위해 붙인 이름을 말한다. var result = 10 + 20; cpu가 10과 20을 합산해 만들어낸 값을 메모리에 저장했는데 이 메모리에 접근할 수 있는 방법이 아까는 없었음. 그런데 이 변수에다 이 결과값을 담아놓으면 변수 이름이 이 메모리 셀의 주소를 기억함. 따라서 우리는 result라는 변수 이름으로 언제든지 30이 들어가 있는 메모리 셀에 접근 할 수 있음. var result 10 + 20; // result라는 변.. 표현식인 문과 표현식이 아닌 문 "표현식인 문과 표현식이 아닌 문" 표현식은 문의 일부일 수 도 있고 그 자체로 문이 될 수도 있다. // 변수 선언문은 값으로 평가될 수 없으므로 표현식이 아니다. var x; // 1, 2, 1 + 2, x = 1 + 2는 표현식이다. // x = 1 + 2은 표현식이면서 완전한 문이기도 하다. x = 1 + 2 표현식과 문을 구별하는 방법은 의외로 간단하다. 문에는 표현식인 문과 표현식이 아닌 문이 있다. 표현식의 문은 값으로 평가될 수 있는 문이며 표현식이 아닌 문은 값으로 평가될 수 없는 문을 말한다. 예를 들어 변수 선언문은 값으로 평가될 수 없다. 따라서 표현식이 아닌 문이다. 하지만 할당문은 그 자체가 표현식인 문이다. 표현식인 문과 표현식이 아닌 문을 구별하기 위한 가방 간단하고 명료한 .. 문 "문" "문(statement)"과 "표현식(expression)"이라는 용어가 자주 등장할 것이므로 문과 표현식은 확실히 이해할 필요가 있다. 문과 표현식을 구별하고 해석할 수 있다면 자바스크립트 엔진의 입장에서 코드를 읽을 수 있고 실행결과 예측에 도움이 된다. 문(statement)은 프로그램을 구성하는 기본 최소 단위이자 최소 실행 단위이다. 문의 집합으로 이루어진 것이 바로 프로그램이며 문을 작성하고 순서에 맞게 나열하는 것이 프로그래밍이다. 문은 여러 토큰들로 구성된다. 토큰(token)이란 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 의미한다. 예를 들어, 키워드, 식별자, 연산자, 리터럴, 세미콜론(;)이나 마침표(.) 등의 특수 기호는 문법적인 의미를 가.. 표현식 "표현식" 표현식(expression)은 값으로 평가(evaluation)될 수 있는 문(statement)이다. 즉 표현식은 평가되어 값을 생성하는 문이다. 앞서 살펴본 리터럴은 값으로 평가된다. 따라서 리터럴도 표현식이다. var score = 100; /* var score // 변수 선언문 score = 100; // 변수 할당문 */ 위 예제의 100은 리터럴이다. 리터럴은 자바스크립트 엔진에 의해 값으로 평가되므로 리터럴은 그 자체로 표현식이다. 다른 예제를 살펴보자. var score = 50 + 50; 50 + 50은 리터럴과 연산자로 이루어져있다. 하지만 50 + 50도 평가되어 숫자 값 100을 생성하므로 표현식이다. 이처럼 표현식은 리터럴, 식별자(변수, 함수 등의 이름), 연산자, .. 리터럴 "리터럴" 리터럴(literal)은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 방식을 말한다. // 숫자 리터럴 3 3 위 예제의 3은 단순한 아라비아 숫자가 아닌 숫자 리터럴이다. 사람이 이해할 수 있는 아라비아 숫자를 사용해 숫자 리터럴 3을 코드에 기술하면 자바스크립트 엔진은 이를 평가해 숫자 값 3을 생성한다. 평가되기 전 리터럴 3은 문자 그대로의 순수한 텍스트일 뿐이다. 리터럴은 평가되어 값을 생성하는 문자(literal)로 기술된 코드이다. 리터럴은 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등) 또는 미리 약속된 기호('', "", ., [], {} 등)로 이루어져 있다, 리터럴을 사용하면 아래와 같이 다양한 종류(data type)의 값을 생성할.. 이전 1 ··· 4 5 6 7 8 다음