동적 스코프(dynamic scope) -함수가 호출되는 시점에 동적으로 상위 스코프를 결정 렉시컬 스코프(lexical scope,static scope, 정적스코프) -함수가 어디에서 정의(선언)했는지에 따라 상위 스코프를 결정 대부분 프로그래밍 언어는 렉시컬 스코프에 따른다. (자바스크립트도 포함) 함수의 상위 스코프는 자신이 정의된 스코프 var x = 1; function foo() { var x = 10; bar(); } function bar() { console.log(x); } foo(); bar(); 위의 예제를 통해서 알아보자 foo(), bar() 함수를 호출시 어떤 값이 나올까? foo 함수와 bar 함수는 전역에서 정의 된 함수이다. bar는 전역에서 정의 된 함수이며, 자신의 ..
함수 레벨 스코프 -var키워드로 선언된 변수는 오로지 함수의 코드 블록(함수 몸체만) 지역스코프로 인정하며 해당 특성 블록 레벨 스코프 -함수 몸체만 아니라 모든 코드 블록(if, for,while try/catch)이 지역스코프이며 특성 var x = 1; if(ture) { var x =10 //var 키워드로 선언된 변수는 함수의 코드 블록만을 지역 스코프로 인정 //함수 밖에 var 키워드로 선언된 변수는 코드 블록 내에 선언되었다 할지라도 // 모두 전역 변수 이다. //이는 의도치 않게 변수값이 변경되는 부작용이 발생시킨다 } console.log(x); // 10 var i = 10; for (var i = 0; i < 5 ; i++) { console.log(i); //0 1 2 3 4 ..
스코프 체인 모든 스코프는 하나의 계층 구조로 연결된 것 중첩함수 함수 몸체 내부에 정의한 함수 외부함수 중첩함수를 포함한 함수 var x = "global x"; var y = "global y"; function outer() { var z ="inner's local z" console.log(x); //global x console.log(y); //global y console.log(z); //inner's local z function inner() { var x = "inner's local x" console.log(x); //inner's local x console.log(y); //global console.log(z); //inner's local z } inner(); //inn..
스코프의 종류 구분 설명 스코프(유효범위) 변수 전역 ( global ) 코드 가장 바깥 영역 전역 스코프 전역 변수 지역 ( local ) 함수 몸체 내부 지역 스코프 지역 변수 전역과 전역 스코프 전역 -전역 스코프가 만든다. 전역 변수 -전역에서 변수를 선언하면 전역스코프를 갖는 전역 변수가 된다. 전역 변수는 어디서든지 참조 가능 지역과 지역 스코프 지역 -함수 몸체 내부 지역 변수 -지역에서 변수를 선언하면 지역 스코프를 갖는 지역 변수가 된다 자신의 지역 스코프와 하위 지역 스코프에서 유효 var x = "global x"; var y = "global y"; function outer() { var z ="inner's local z" console.log(x); //global x cons..
스코프 -식별자가 유효한 범위 . => 모든 식별자(변수 이름, 함수 이름, 클래스 이름등)는 자신이 선언된 위치에 의한 다른 코드가 식별자 자신을 참조할 수 있는 유효범위 -식별자는 어떤 값을 구별할수 있어야 하므로 유일해야한다(식별자인 변수 이름은 중복 불가) => 스코프를 통해 식별자인 변수 이름의 충돌 방지하여 같은 이름의 변수를 사용 가능하게 함 =>즉, 네임스페이스: 스코프 내에서 식별자는 유일해야 하지만 다른 스코프에는 같은 이름의 식별자를 사용할 수 있다 function add(x, y) { //매개변수는 함수 몸체 내부에만 참조가능 //매개변수의 스코프 유효범위는 함수 몸체 내부 console.log(x, y); return x + y; } add(2, 3) console.log(x, y..
식별자 네이밍 규칙 식별자는 특수문자를 제외한 문자, 숫자, 언더스코어( _ ), 달러기호( $ )를 포함가능. 식별자의 문자, 언더스코어 , 달러 기호로 시작해야함.(숫자 시작은 불허용) 예약어는 식별자로 사용할수 없다.(reserved word) => var, let, const, function. if... 등등 쉼표로 구분해 하나의 문에서 여러 개를 한번에 선언가능하나, 가독성이 나빠 권장하지 않음 알파벳 외의 글자도 식별자로 사용 가능하나 알파벳 외의 유니코드 문자로 명명된 식별자를 사용하는 것은 권장하지 않음 자바스크립트는 대소문자를 구별한다 let firstname let FirstName let FIRSTNAME -아래의 식별자는 각 별개의 변수 변수의 목적을 수비게 이해할 수 있도록 의미..
할당 변수의 값을 할당(대입, 저장)하기 위해서 할당 연산자( = ,equal) 사용. 할당 연산자 - 우변의 값을 좌변의 변수에 할당 let score = 80; // score 라고 불리는 메모리 공간에 80이라는 값을 메모리 셀에 저장하는 것이다 값의 재할당 -이미 값이 할당 되어 있는 변수에 새로운 값을 또 다시 할당 let score = 80;//변수 선언과 값의 할당 // score 라고 불리는 메모리 공간에 80이라는 값을 메모리 셀에 저장하는 것이다 score = 100; // 값의 재할당 재할당은 변수에 저장된 값을 다른 값으로 변경한다 그래서 변수라고 하는 것이다. 상수 -값을 재할당할수 없어서 변수에 저장된 값을 변경 할수 없는 것 -한번 정해지면 변하지 않는 값(한번만 할당 할수 있..
변수 선언 변수를 생성하는 것 => 값을 저장하기 위한 메모리 공간을 확보하고 변수 이름과 확보된 메모리 공간의 주소를 연결(name binding)해서 값을 저장 할수 있게 준비하는 것 -변수를 사용하기 위해서 반드시 선언이 필요 선언시 사용하는 키워도 var, let, const(ES6에서 let, const 도입) 변수 선언 실행 시점과 변수 호이스팅 console.log(score) // 출력시 값 undeined var score //변수 선언문 변수 선언 실행 시점 => 변수 선언이 소스코드가 한 줄씩 순차적으로 실행되는 시점 즉 런타임(runtime)이 아니라 그 이전 단계에서 먼저 실행 변수 호이스팅(Variable hoisting) => 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동..
- Total
- Today
- Yesterday
- Root_Component
- 스코프
- 북스터디
- vim 편집기
- CSS
- 국비지원교육
- javascript
- 리액트
- Git
- component
- react
- GitHub
- export
- 내일배움카드
- JSX
- git flow
- 국비지원
- 개발자치업부트캠프
- 패스트캠퍼스
- 메가바이트스쿨
- 개발자취업부트캠프
- 컴포넌트
- 그룹스터디
- til
- 그룹스터디_북스터디
- shell command
- html
- MegabyteSchool
- 가상클래스
- MegabyteShool
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |