Home
Youngho's Devlog
Cancel

[Javascript] 상수 및 리터럴

프로그래밍 언어를 학습하다보면 보면 상수와 리터럴이란 단어를 자주 접할 수 있다. 이 둘의 차이는 아래와 같다. 상수(constant) 단 한 번만 값을 저장할 수 있는 저장공간을 뜻한다. 즉, 변하지 않는 변수를 의미하며 참조하는 메모리 값(메모리 위치)을 변경할 수 없다. final int i = 10; 이라는 코드에서 변수 i엔 절대 다른...

[PoiemaWeb] 5.16 보다 안정적인 자바스크립트 개발 환경을 위한 Strict mode(PoiemaWeb-Javascript)

1. strict mode란? function foo() { x = 10; } console.log(x); // ? foo 함수 내에서 선언하지 않은 변수 x에 값 10을 할당하였다. 이때 변수 x를 찾아야 x에 값을 할당할 수 있기 때문에 자바스크립트 엔진은 변수 x가 어디에서 선언되었는지 스코프 체인을 통해 검색하기 시작한다. 자바스크립...

[PoiemaWeb] 5.15 스코프(PoiemaWeb-Javascript)

1. 스코프란? 스코프(Scope, 유효범위)는 자바 스크립트를 포함한 모든 프로그래밍 언어의 기본적인 개념으로 확실한 이해가 필요하다. 스코프는 참조 대상 식별자(identifier, 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를 찾아내기 위한 규칙이다. 자바 스크립트는이 규칙대로 식별자를 찾는다. ...

[PoiemaWeb] 5.14 프로토타입(PoiemaWeb-Javascript)

1. 프로토타입 객체 자바스크립트의 모든 객체는 자신의 부모 역할을 담당하는 객체와 연결되어 있다. 그리고 이것은 마치 객체 지향의 상속 개념과 같이 부모 객체의 프로퍼티 또는 메소드를 상속받아 사용할 수 있게 한다. 이러한 부모 객체를 Prototype(프로토타입) 객체 또는 줄여서 Prototype(프로토타입)이라 한다. 객체를 생성할 때 프로토...

[PoiemaWeb] 5.12 함수(PoiemaWeb-Javascript)

2. 함수 호이스팅 자바스크립트는 ES6의 let, const를 포함하여 모든 선언(var, let, const, function, function*, class)을 호이스팅(Hoisting)한다. 호이스팅이란 var 선언문이나 function 선언문 등 모든 선언문이 해당 Scope의 선두로 옮겨진 것처럼 동작하는 특성을 말한다. 즉, 자바스...

[PoiemaWeb] 5.10 객체(PoiemaWeb-Javascript)

2. 객체 생성 방법 자바와 같은 클래스 기반 객체 지향 언어는 클래스를 사전에 정의하고 필요한 시점에 new 연산자를 이용하여 인스턴스를 생성하는 방식으로 객체를 생성한다. 하지만 자바스크립트는 프로토타입 객체 지향 언어로서 클래스라는 개념이 없고 별도의 객체 생성 방법이 존재한다. Note: ECMAScript 6에서 새롭게 클래스가 도입되...

[PoiemaWeb] 5.9 타입 변환과 단축 평가(PoiemaWeb-Javascript)

1. 타입 변환이란? 암묵적 타입 변환은 변수 값을 재할당해서 변경하는 것이 아니라 자바스크립트 엔진이 표현식을 에러없이 평가하기 위해 기존 값을 바탕으로 새로운 타입의 값을 만들어 단 한번 사용하고 버린다. 5. 단축 평가 논리곱 연산자 &&와 논리합 연산자 ||는 논리 평가를 결정한 피연산자의 평가 결과를 그대로 반환한다. 이를 단...

[PoiemaWeb] 5.8 제어문(PoiemaWeb-Javascript)

4. break 문 레이블 문(Label statement)이란 식별자가 붙은 문을 말한다. // foo라는 레이블 식별자가 붙은 레이블 문 foo: console.log('foo'); 레이블 문은 프로그램의 실행 순서를 제어하기 위해 사용한다. 사실 switch 문의 case 문과 default 문도 레이블 문이다. 레이블 문을 탈출하려면 br...

[PoiemaWeb] 5.7 연산자(PoiemaWeb-Javascript)

2. 문과 표현식 자바스크립트 statement 끝에 세미콜론을 안 붙여줘도 되는 이유는 자바스크립트 엔진에는 statement 끝이라고 예측되는 지점에 세미콜론을 자동으로 붙여주는 세미콜론 자동 삽입 기능(ASI, automatic semicolon insertion)이 있기 때문이다. 세미콜론을 반드시 붙여야 한다는 주장이 대다수를 차지하지만 붙...

[PoiemaWeb] 5.6 데이터 타입과 변수(PoiemaWeb-Javascript)

1.1.1 number Javascript는 모든 수를 실수(일반적으로 소수를 가리킴)로 처리한다. console.log(3/2); => 결과: 1.5 1.1.2 string 문자열은 배열처럼 인덱스를 통해 접근할 수 있으며 immutable특징을 가진다. var str = "string" str[0] = 'S' 위의 코드 처럼 이미 ...