primitive vs object
·
Web/Javascript
1. primitive type variable 다음 범주에 들어가는 Boolean, null, undefined, String, Number , Symbol등이 있는데 이중에서 보통 다루는 것은 Boolean, Number, String이다. 2. Object Type Primitive type의 여집합은 모두 Object Type이다. 3. Diagram 4. 그래서 어쩌라고? 두 Data type의 미묘한 차이만 짚고 넘어가면된다. C가 친숙한 사람들에겐 이렇게 설명하면 쉽다. Primitive type 은 값을 담는 일반 변수 Object type은 포인터 변수 반은 맞고 반은 틀린설명이다 Javascript에서의 Object type은 Heap 영역의 주소만 가리킨다. 자바스크립트 엔진은 오브젝..
Error : Property 속성 이름에 '/'가 포함된 경우
·
Web/Javascript
1. 문제상황 보통 오브젝트 내의 Property (Key) 값에 접근하는 연산자로 Java, JavaScript모두 '.' 접근 연산자를 사용한다. 근데 해당 Property 이름안에 '/'가 포함된 경우 접근이 정상적으로 되지 않는다. this_ppt.presentation.content object를 까보면? 2. 해결 다음과 같이 접근한다 [구문] objectName['propertyName'] 배열속의 n번째 원소에 접근할 때 array[n] 하는 형태와 유사하다.
async / await Function
·
Web/Javascript
1. async Function 개요 직역하면 비동기적으로 수행되는 함수. JavaScript상의 모든 Asynchronous Function은 사실 async Function이다. aysnc Function은 반드시 그 내부에 return Promise(function(resolve, reject)) // 형태와 같이 Promise 객체를 반환하는 것이 암묵적으로 정의되어있다. 따라서 Interface Parameter 사용자가 정의 가능 Return Promise Object (성공시 함수의 return 결과를 then으로 받고 실패시 catch로 받음) 2. await 개요 async Function의 함수 내부의 statement가 비동기적으로 수행된다면 await 이 걸린 부분은 반드시 그 결과..
객체의 뽀개기2
·
Web/Javascript
다음 코드를 읽고 실행결과를 예상해보자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 var x = {a: 10}; var y = x; console.log(x); console.log(y); y.a = 20; console.log(x); console.log(y); var Isol = {a: undefined, b: 30}; Isol.a = x.a; console.log(Isol); X라는 Object에서 Key: a Value: 10 라고 볼 수 있다. y = x 하는 순간 x라는 object가 가리키는 메모리상 주소가 y가 가리키는 주소와 같아지게된다. 결국 x와 y모두 Key: a / Value: 10을 가지는 동일한 Object에 접근하게 되는 것이다
콜백함수 기본 예시
·
Web/Javascript
1. 익명함수 넘기기 callTenFunc를 호출하며 함수를 동시에 정의하고있다. (익명함수) callTenFunc: 어떤 함수를 10번 호출하는 함수 1 2 3 4 5 6 7 8 9 10 11 12 var callTenFunc = function(targetFunc){ for(var i = 0 ; i
선언 vs 익명 함수 우선순위
·
Web/Javascript
1. 선언함수 function 함수명() { 실행 내용; } 2. 익명함수 function(){ 실행 내용; } 주로 익명함수는 var object_name = function(){ 실행내용; } 3. 함수 우선순위 다음 함수들의 실행결과를 예상해보자. ※선언함수가 Node.js 에서는 함수로 인식하지 못하는 현상이 발생 원인이 뭔지 모름 아직 미해결 ※ [해답] JavaScript는 태그 내의 명렁어를 수행하기 전에 내부적으로 먼저 선언함수를 익명함수보다 '먼저' 읽는다. 함수명 = {~~~}; 로 대치시킨다. 즉, 익명함수가 선언함수보다 늦게 읽히므로 '순서비교' 함수에는 선언함수내용이 익명함수 내용으로 덮어씌워진다. 출력결과