coding/js 33

undefined와 null

Js가 undefined을 반환할 때(사용자가 개별적으로 지정하지 않았을 때) 1. 값을 대입하지 않은 변수, 즉 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근하려 할 때. 2. 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할 때 3. return 문이 없거니 호출되지 않는 함수의 실행 결과 그런데 만약 1번의 경우, 배열에서는 조금 다른 동작을 볼 수 있음.

coding/js 2022.11.24

화살표 함수를 쓰면 안되는 때와 써야할 때.

https://velog.io/@raram2/%ED%99%94%EC%82%B4%ED%91%9C-%ED%95%A8%EC%88%98%EB%A5%BC-%EB%82%A8%EC%9A%A9%ED%95%98%EB%A9%B4-%EC%95%88%EB%90%98%EB%8A%94-%EC%9D%B4%EC%9C%A0#2-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%ED%95%B8%EB%93%A4%EB%9F%AC%EB%A1%9C-%EC%84%A0%EC%96%B8%ED%95%A0-%EB%95%8C 화살표 함수를 남용하면 안되는 이유 ES6 화살표 함수(Arrow function) 방식은 작성에 편리하고 보기에도 간결하기 때문에 한번 익히고 나면 이 방식만 고수하는 경우도 종종 있다.하지만 사람이 쓰고 읽기에 좋다는 이유만으..

coding/js 2022.09.15

실행 컨텍스트

실행 컨텍스트(execution context)는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체로, 자바스크립트의 동적 언어서의 성격을 잘 파악할 수 있는 개념이다. 동일한 환경에 있는 코드들을 실행할 때 필요한 정보들을 모아 컨텍스트를 구성하고, 이를 콜스택에 쌓아올렸다가, 가장 위에 쌓여있는 컨텍스트와 관련있는 코드들을 실행하는 식으로 전체 코드의 환경과 순서를 보장한다. 여기서 동일한 환경은 하나의 실행 컨텍스트를 구성할 수 있는 방법으로, 전역공간, eval() 함수, 함수 등이 있음. 전역공간은 자동으로 생성됨. eval()은 잘 사용하지 않음. 권장 no. 우리가 흔히 실행 컨텍스트를 구성하는 방법은 함수를 실행하는 것이다. // —————————- (1) var a = 1; functio..

coding/js 2022.09.06

Js 불변 객체 만들기.

얕은 복사로 만들 수 있고, 이후 깊은 복사로 만들 수 있음. 깊은 복사는 콜백함수로 type이 !null이고, object인 값을 계속 호출해서 복사함. 깊은 복사 코드. var copyObjDeep = funtion(target) { var result = {}; if (typeof target == ‘object’ && target !== null) { for (var prop in target) { result[prop] = copyObjDeep(target[prop]); } } else { result = target; } return result; } 혹은 json 문자열로 만든 후,(=JSON.stringify(obj)) 이 값을 다시 json 객체로 변환하기! 이것은 잘 작동하나, 메서드(..

coding/js 2022.09.03

참조형의 가변값과 불변값.

Js의 메모리와 데이터, 그리고 기본형 데이터의 불변성. Js의 메모리와 데이터, 그리고 기본형 데이터의 불변성. *정재남님의 코어 자바스크립트 책 기반으로 작성함. 컴터는 모든 데이터를 0과 1로 표현한다. (비트 단위) 메모리는 이런 비트들로 구성된다. 비트 하나당 고유한 식별자(uniqe identifier)를 통해 위 nyw00.tistory.com 이어서 감. 참조형 데이터는? 기본적 성질은 가변값이나 설정에 따라 변경 불가하거나 불변값으로 활용하는 경우기 있움. 참조형 데이터의 할당. var obj1 = { a:1, b:’bbb’ }; 1. 우선 빈 공간 @1002에 obj1을 이름으로 저장하고, 데이터 주소값을 @5001로 저장.. 2. 5001에 값을 저장해야 하는데..여러개로 이루어진 데..

coding/js 2022.09.03

Js의 메모리와 데이터, 그리고 기본형 데이터의 불변성.

*정재남님의 코어 자바스크립트 책 기반으로 작성함. 컴터는 모든 데이터를 0과 1로 표현한다. (비트 단위) 메모리는 이런 비트들로 구성된다. 비트 하나당 고유한 식별자(uniqe identifier)를 통해 위치를 확인할 수 있는데, 이러면 너무 비효율적이라 비트를 묶어서 하나의 단위로 만들어 식별자를 삼고 위치를 확인 가능하다!! 하지만 묶는 단위가 너~무 크면 낭비되는 비트들이 있음. 그래서 적정히 8개의 비트를 묶은 바이트(byte)라는 단위가 생김. 한 비트당 0혹은 1이 표현 가능한 2의 8제곱은 256개의 값을 표현 가능함. 자바같은 정적 타입 언어는 메모리 낭비를 최소화하기 위해 바이트 크기를 쪼개어 나누었다. (형 변환 시, 더 귀찮음) 하지만!!! 메모리 용량이 월등히 커진 상황에서 등..

coding/js 2022.09.02

인코딩 디코딩 escape(), unescape()

escape(), unescape() 자바스크립트(Javascript) escape, encodeURI, encodeURIComponent 인코딩 함수 3개 모두 인코딩 관련 함수 입니다. 인코딩은 네트워크에서 서로 정보를 주고 받기위해 ASCII 코드값으로 변경하는 행위를 말합니다. 영어외에 2바이트를 쓰는 언어들이 있습니다. 이런 언어들을 네트워크 상에서 전송하기 위해서는 인코딩함수를 이용해서 변환해야 합니다. https://mainia.tistory.com/2428 자바스크립트(Javascript) escape, encodeURI, encodeURIComponent 인코딩 함수 자바스크립트(Javascript) escape, encodeURI, encodeURIComponent 인코딩 함수 3개 모..

coding/js 2022.05.24