본문 바로가기

분류 전체보기89

[2주차 스터디]15장-let const 블록 스코프 let, const 키워드와 블록 레벨 스코프 var 키워드 변수 문제점 중복선언 허용 함수레벨 스코프 var 키워드로 선언한 변수는 오로지 함수 스코프 내에서만 지역 스코프로 인정 됩니다. var x = 1; if (true) { // x는 전역 변수다. 이미 선언된 전역 변수 x가 있으므로 x 변수는 중복 선언된다. // 이는 의도치 않게 변수값이 변경되는 부작용을 발생시킨다. var x = 10; } console.log(x); // 10 변수 호이스팅 var 키워드 이용시 호이스팅에 의해 할당 이전에 참조 가능 // 이 시점에는 변수 호이스팅에 의해 이미 foo 변수가 선언되었다(1. 선언 단계) // 변수 foo는 undefined로 초기화된다. (2. 초기화 단계) console.log(foo.. 2022. 2. 6.
[2주차 스터디]14장-전역변수 문제점 전역 변수의 문제점 변수의 생명 주기 전역 변수의 생명 주기는 애플리케이션의 생명 주기와 같다 지역 변수의 생명주기는 함수의 생명 주기와 일치한다. 단, 누군가 스코프를 참조하고 있으면 스코프는 소멸하지 않고 생존 (클로저 개념) 호이스팅은 스코프 단위로 동작한다. var x = 'global'; function foo() { console.log(x); // undefined var x = 'local'; } foo(); console.log(x); // global 전역 객체 전역 객체는 코드가 실행 되기 이전 단계에 자바스크립트 엔진에 의해 어떤 객체 보다도 먼저 생성되는 특수한 객체 브라우저 에서는 window가 전역객체, node.js에서는 global 이 전역객체 .. 2022. 2. 6.
[2주차 스터디]13장- 스코프 스코프 모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 자신은 참조할 수 있는 유효 범위가 결정된다. 스코프(scope) : 식별자가 유효한 범위 자바스크립트는 코드를 실행할 때 코드의 문맥(context)를 고려합니다. 이름이 같은 두 변수중 어떤 것을 참조할지 결정하는 것을 식별자 결정이라고 합니다. 스코프(scopoe)란 식별자를 검색할 때 사용하는 규칙이라고 할 수 있습니다. 코드가 어디서 실행되며 주변에 어떤코드가 있는지를 렉시컬 환경(lexical enviroment)라고 합니다. 즉, 코드의 context는 렉시컬 환경으로 구성되고 이를 구현한 것이 실행 컨텍스트입니다. 스코프의 종류 코드는 전역(global)과 지역(local)로 구분할 수 있습니다. 구분 설명 스코프 변수 전역 코드.. 2022. 2. 6.
[2주차 스터디]12장-함수 함수 수학에서의 함수 입력(input)을 받아 출력(output)을 내보내는 일련의 과정을 정의프로그래밍 언어의 함수 일련의 과정을 문(statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것 함수의 정의를 통해 생성 함수호출을 통해 실행 함수 사용 이유 코드의 재사용을 통한 중복 최소화 유지 보수의 편의성 코드 신뢰성 코드의 가독성 함수 리터럴 자바스크립트의 함수는 객체 타입의 값 입니다. 함수도 함수 리터럴로 생성 가능 즉, 함수는 객체 함수를 객체로 취급하는 것은 js의 특징 일반 객체는 호출할 수 없지만 함수는 호출 가능 함수 정의 변수는 선언 한다고 하지만 함수는 정의 한다고 표현함 함수 정의는 4가지 방법으로 가능 함수 선언문 함수 표현식 Function 생성자 함수.. 2022. 2. 6.
[2주차 스터디]11장-원시값과 객체의 비교 원시 값과 객체의 비교 원시 값은 변경 불가능한 값 객체는 변경 가능한 값 원시 값을 변수에 할당 하면 실제 값이 저장 객체를 변수에 할당하면 참조 값이 저장원시값을 갖는 변수를 다른 변수에 할당 시 원시 값이 복사되어 전달 됩니다. 이를 값에 의한 전달(pass by value)이라고 합니다. 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 **참조값이 복사되어 전달 됩니다. 이를 참조에 의한 전달(pass by value) 라고 합니다. 원시 값 변경 불가능한 값 원시 값은 변경 불가능 한 값으로 데이터의 신뢰성을 보장 재할당 시 이전의 원시 값을 변경하는 것이 아니라 변수가 새로운 메모리 공간의 주소를 참조함 const는 변수의 재할당을 막는 것, 원시 값 자체는 변경되는 것 아님문자열과 불변성.. 2022. 2. 6.
[2주차 스터디]10장-객체 리터럴 객체 리터럴 객체란? 자바스크립트는 객체 기반의 프로그래밍 언어 입니다. 원시값을 제외한 나머지는 모두 객체 입니다. 원시 값은 변경 불가능한 값이지만, 객체는 변경 가능한 값입니다. 객체는 프로퍼티(property)로 구성된 집합이며 프로퍼티는 키(key)와 값(value)로 구성된다. 프로퍼티의 값이 함수일 경우 메서드(method)라고 부릅니다. 자바스크립트에서는 객체와 함수는 밀접한 관계 함수로 객체를 생성하기도 하고 함수 자체가 객체이기도 합니다. 객체의 생성 자바스크립트는 프로토타입 기반 객체지향 언어로 다양한 객체 생성방법을 가짐 객체 리터럴 Object 생성자 함수 생성자 함수 Object.create 메서드 클래스(es6) 객체를 중괄호{} 내에 프로퍼티를 직접 정의해서 사용하는 것은 객.. 2022. 2. 6.