Web/JavaScript(36)
-
[JavaScript] 모던 자바스크립트 Deep Dive 13장 - 스코프
13.1 스코프란? 식별자가 유효한 범위, 자바스크립트 엔진이 식별자를 검색할 때 사용하는 규칙 var 키워드로 선언한 변수의 중복 선언 // 매개변수는 함수 몸체 내부에서만 참조할 수 있다. console.log(x, y); // ReferenceError: x is not defined // var 키워드로 선언한 변수의 중복 선언 function foo() { var x = 1; // var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언을 허용한다. // 아래 변수 선언문은 자바스크립트 엔진에 의해 var 키워드가 없는 것처럼 동작한다. var x = 2; console.log(x); // 2 } foo(); function bar() { let x = 1; // let이나 const 키워드..
2022.07.20 -
[JavaScript] 모던 자바스크립트 Deep Dive 12장 - 함수
12.1 함수란? 프로그래밍 언어의 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것 12.2 함수를 사용하는 이유 함수는 몇 번이든 호출할 수 있으므로 코드의 재사용이라는 측면에서 매우 유용 var x = 0; var y = 0; var result = 0; x = 1; y= 2; result = x + y; // 3 x = 3; y = 4; result = x + y; // 7 x = 5; y = 6; result = x + y; // 11 함수를 통해 중복을 제거하고 코드를 재사용할 수 있다. function add(x, y){ return x + y; } var result = 0; result = add(1, 2); // 3 result = add(3, 4..
2022.07.18 -
[JavaScript] 모던 자바스크립트 Deep Dive 11장 - 원시 값과 객체의 비교
11. 1 원시 값 11.1.1 변경 불가능한 값 원시 타입의 값, 즉 원시 값은 변경 불가능한 값이다. 읽기 전용 데이터의 신뢰성을 보장 // const 키워드를 사용해 선언한 변수는 재할당이 금지된다. 상수는 재할당이 금지된 변수일 뿐이다. const o = {}; // const 키워드를 사용해 선언한 변수에 할당한 원시 값(상수)은 변경할 수 없다. // 하지만 const 키워드를 사용해 선언한 변수에 할당한 객체는 변경할 수 있다. o.a = 1; console.log(o); // { a: 1 } 11.1.2 문자열과 불변성 원시 값을 저장하려면 먼저 확보해야 하는 메모리 공간의 크기를 결정해야 한다. 이를 위해 원시 타입별로 메모리 공간의 크기가 미리 정해져 있다. * 단, ECMAScript..
2022.07.15 -
[JavaScript] 모던 자바스크립트 Deep Dive 10장 - 객체 리터럴
10.1 객체란? 자바스크립트는 객체 기반의 프로그래밍 언어. 자바스크립트를 구성하는 거의 "모든 것"이 객체다. 원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모두 객체이다. * 원시 값은 변경 불가능한 값이지만 객체 타입의 값, 즉 객체는 변경 가능한 값 프로퍼티: 객체의 상태를 나타내는 값 메서드: 프로퍼티(상태의 데이터)를 참조하고 조작할 수 있는 동작 10.2 객체 리터럴에 의한 객체 생성 자바스크립트는 프로토타입 기반 객체지향 언어로서 클래스 기반 객체지향 언어와는 달리 다양한 객체 생성 방법을 지원한다. 객체 리터럴 Object 생성자 함수 생성자 함수 Object.create 메서드 클래스(ES6) 객체 리터럴에 의한 객체 생성 var person = { name: 'Lee..
2022.07.14 -
[JavaScript] 모던 자바스크립트 Deep Dive 9장 - 타입변환과 단축 평가
9.1 타입변환이란? 개발자가 의도적으로 값의 타입을 변환하는것을 명시적 타입변환 또는 타입 캐스팅이라 한다. var x = 10; // 명시적 타입 변환 // 숫자를 문자열로 타입 캐스팅한다. var str = x.toString(); console.log(typeof str, str); // string 10 // x 변수의 값이 변경되는 것은 아니다. console.log(typeof x, x); // number 10 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되는 것을 암묵적 타입 변환 또는 타입 강제 변환이라 한다. var x = 10; // 암묵적 타입변환 // 문자열 연결 연산자는 숫자 타입 x의 값을 바탕으로 새로운 문자열을 생..
2022.07.13 -
[JavaScript] 모던 자바스크립트 Deep Dive 8장 - 제어문
8.1 볼록문 볼록문은 0개 이상의 문을 중괄호로 묶은 것 블록문의 끝에는 세미콜론을 붙이지 않는다. // 블록문 { var foo = 10; } // 제어문 var x = 1; if (x < 10){ x++; } // 함수 선언문 function sum(a, b){ return a + b; } 8.2 조건문 조건문은 주어진 조건식의 평가 결과에 따라 코드 블록의 실행을 결정한다. boolean 값으로 평가될 수 있는 표현식 8.2.1 if ... else 문 if ... else 문은 주어진 조건식의 boolean 값에 따라 실행할 코드 블록을 결정 if (조건식) { // 조건식이 참이면 이 코드 블록이 실행 } else { // 조건식이 거짓이면 이 코드 블록이 실행 } 만약 코드 블록 내의 문이 ..
2022.07.13