전체 글
-
JavaScript 05. 자바스크립트 - 형 변환JavaScript/1주차-JavaScript 문법 2023. 5. 26. 06:00
형 변환 : 형태를 바꾼다. 문자열을 숫자열로, 숫자열을 문자열로 등등. 1. 암시적 형 변환 : 개발자가 의도하지 않았고, 자동적으로 바뀌는 형 변환 2. 명시적 형 변환 : 개발자가 의도한 형 변환 1. 암시적 형 변환 문자열과 다른 데이터를 더하기(+)를 할 때, 문자열이 항상 우선시된다. 예를들어, let result1 = 1 + "2"; console.log(result1); console.log(typeof result1); 여기에서 숫자열1과 문자열 "2"를 더하면 문자열화되어 typeof는 string으로 나오고, 숫자열1을 문자열로 취급하여 12로 나온다. let result2 = "1" + true; console.log(result2); console.log(typeof result2..
-
7. Record와 호이스팅JavaScript/3주차-데이터타입, 실행컨텍스트, this 2023. 5. 25. 19:39
실행 컨텍스트 : 객체에 담기는 정보 실행 컨텍스트는 3가지가 있다. 1. Variable Environment, 2. Lexical Environment, 3. This Binding 1. Variable Environment (VE) 현재 컨텍스트 내의 식별자 정보(record) = VE, LE var a = 3 일때, var a 가 식별자 정보. (3은 변수) 또한 외부환경 정보(outer)도 갖고있다. 정리 : VE는 두가지를 가지고 있다. 식별자정보(record)와 외부환경정보(outer) 식별자정보(record) : Environment Record 외부환경정보(outer) : Outer Environment Reference 2.Lexical Environment (LE) 기본적으로 Vari..
-
JavaScript 04. 자바스크립트 - 데이터 타입 (기타)JavaScript/1주차-JavaScript 문법 2023. 5. 25. 18:00
JavaScript 기타 데이터 타입 1. 불리언 (Boolean) 불리언은 참(true)과 거짓(false)을 나타내는 데이터 타입이다. let bool1 = true; console.log(bool1); ->결과값은 true로 도출됨 console.log(typeof bool1); let bool2 = false; console.log(bool2); ->결과값은 false로 도출됨 console.log(typeof bool2); boolean은 true 또는 false로 도출되고, typeof 값은 boolean으로 도출된다. 불리언 데이터 타입은 조건문(if, else, switch 등)과 논리 연산자(&&, ||, !)와 함께 많이 사용된다. 예를 들어, 다음과 같은 코드를 작성할 수 있다. le..
-
6. 실행 컨텍스트(스코프, 변수, 객체, 호이스팅), 콜 스택JavaScript/3주차-데이터타입, 실행컨텍스트, this 2023. 5. 25. 17:41
실행컨텍스트 : 실행할 코드에 제공할 환경정보를 모아놓은 객체 실행컨텍스트의 역할 3가지 1. 호이스팅 (hoisting) : 선언된 변수를 위로 끌어올림 2. 외부 환경 정보 구성 3. this 값 설정 콜 스택 스택(Stack)과 항상 비교되는 것은 큐(Queue) Stack : Last In, First Out = LIFO (마지막에 들어온게 처음으로 나간다.) Queue: First In, First Out = FIFO (처음으로 들어온게 처음으로 나간다) 콜 스택에서는 스택(Stack) 방식을 따른다. 실행 컨텍스트란 실행할 코드에 제공할 환경 정보들을 모아놓은 객체. 그 객체. 즉, 동일 환경에 있는 코드를 실행할 때 필요한 환경 정보들을 모아 컨텍스트를 구성하고 이것을 위에서 설명한 ‘스택’..
-
5. null과 undefinedJavaScript/3주차-데이터타입, 실행컨텍스트, this 2023. 5. 25. 17:06
null과 undefined 1. undefined 자바스크립트에서 undefined가 나오는 경우 3가지 변수에 값이 지정되지 않은 경우, 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때 .이나 [ ]로 접근하려 했는데, 해당 데이터가 존재하지 않는 경우 function인데 return 문이 없거나 호출되지 않는 함수의 실행 결과 undefined 예시 (1) 값을 대입하지 않은 변수에 접근 var a; console.log(a); (2) 존재하지 않는 property에 접근 var obj = { a: 1 }; console.log(obj.a); // 1 console.log(obj.b); // 존재하지 않는 property에 접근 // console.log(b); // 오류 발생 (3)..
-
4. 불변 객체 (깊은 복사 얕은 복사)JavaScript/3주차-데이터타입, 실행컨텍스트, this 2023. 5. 25. 16:40
이름을 변경하는 함수 이름을 변경하는 함수, 'changeName'을 정의 입력값 : 변경대상 user 객체, 변경하고자 하는 이름 출력값 : 새로운 user 객체 특징 : 객체의 프로퍼티(속성)에 접근해서 이름을 변경 var user = { name: 'jake', gender: 'male', }; // 객체의 속성을 복사하는 변경 방법 var changeName = function (user, newName) { var newUser = user; newUser.name = newName; return newUser; }; var user2 = changeName(user, 'sangwoo'); if (user !== user2) { console.log('유저 정보가 변경되었습니다.'); } con..
-
3. 변수 선언과 데이터 할당 (참조형 데이터)JavaScript/3주차-데이터타입, 실행컨텍스트, this 2023. 5. 25. 11:30
변수 선언과 데이터 할당 참조형 데이터는 기본형 데이터와는 달리, 변수 할당 과정에서 obj1을 위한 별도 공간이 필요하다. 즉, 참조형 데이터는 변수 할당 과정에서 객체의 변수 (프로퍼티)가 별도로 존재한다. 기본형 데이터 (Number, String, Boolean, null, undefined, Symbol), 불변 참조형 데이터 (Object의 하위요소 - Array, Funtion, Data, RegExp, Map, WeakMap, Set, WeakSet), 변함 그냥 이렇게 생각하면 쉽다. a: 1, b: 'bbb'를 key-value pair 로 생각했을 때 변수영역에 우선 변수이름 넣고 데이터영역에 key값 순서대로, obj1을 위한 별도공간에 value값 순서대로 넣고 데이터영역의 주소를..
-
2. 변수 선언과 데이터 할당 (기본형 데이터)JavaScript/3주차-데이터타입, 실행컨텍스트, this 2023. 5. 25. 11:21
변수 선언과 데이터 할당 var str; // 변수 선언 str = 'test!' // 변수 할당 (=이 있으면 할당, assignment) var str = 'test!' // 변수 선언과 할당을 붙여 쓴 방식 메모리에 데이터를 할당하는 방식은, 변수 선언과 변수 할당을 나눠놓은 첫번째 방식으로 한다. 즉, 변수영역과 데이터영역을 나눠놓는다. 위 표에서, 변수 영역에는 var str 셋팅을 먼저 해야함 왼쪽부터 변수영역에 데이터 빈 곳을 채워줘야함. 변수이름과 데이터를 쓰고, 데이터영역에서 빈곳을 찾아 데이터값을 쓰고, 변수영역의 데이터에는 데이터영역에 할당된 주소를 입력함. 만약, 주소 5002에 다른 데이터가 이미 입력되어 있다면 그 다음주소인 5003이 'test!'데이터의 주소값이다. 순서대로 ..