전체 글 썸네일형 리스트형 중첩 데이터의 메모리 저장방식 [JS문법 종합반 3주차 ] 일단 내용 전반은 스파르타 코딩클럽 [JS 문법 종합반 ] 3주차 데이터 타입 부분 강의자료를 보자. (개인 pc에 저장함,링크는 생략) 아래와 같은 객체가 있다고 하자. var obj = { x: 3, arr: [3, 4, 5], } 메모리에서 obj.arr[1] 을 찾아보고자 한다. 어떻게 찾아 들어가야 할까? 큰 그림을 보자면 obj는 아래와 같은 방식으로 메모리에 할당된다. 특이한 점은 참조형 데이터는 메모리에서 별도의 공간을 갖게 된다는 점이다. obj 는 참조형 데이터라서 별도의 메모리 영역을 갖게 된다. 아래 부분이다. 여기에 obj의 프로퍼티들이 들어가게 된다. 또 arr 역시 참조형 데이터라서 별도의 영역을 갖게 된다. 아래 부분이다. 여기서 3이라는 데이터가 기존에 변수 x를 위해 이미.. 더보기 메모리: 참조형 데이터는 가변하다. [ JS문법 종합반 3주차 -1] 참조형 데이터는 변수명에 객체가 할당되면 참조형 데이터 중 하나인 것 같다. 참조형 데이터의 메모리 저장방식은 가변하다. 하나의 객체가 변수명에 들어간 상태를 가정해 설명해 보겠다. 아래와 같은 코드에서 obj1.a =2 ; 를 실행하는 순간 a / @5001 --> a / @5003 으로 바뀐다. // 참조형 데이터는 별도 저장공간(obj1을 위한 별도 공간)이 필요합니다! var obj1 = { a: 1, b: 'bbb, }; obj1.a = 2; 속성의 데이터를 가리키는 영역이 바뀌었다. a 속성의 값은 더이상 1이 아니라 2이므로 그 2를 5003번에 넣어 주었고 a속성이 저장된 메모리는 5003번을 가리키게 되었다. 속성값이 바뀌면서, 속성이 가리키는 번호가 바뀐 것이다. 이것이 가변성이다. 일.. 더보기 메모리: 변수와 상수 그리고 불변하다와 불변하지 않다. [ JS문법 종합반 3주차] 자바스크립트의 메모리 관리 방식에 있어서 [변수]와 [상수]의 차이점은 뭘까? 불변하다와 불변하지 않다의 차이점은 뭘까? 일단 큰 그림은 스파르타 코딩클럽 [JS 문법 종합반 ] 3주차 데이터 타입 부분 강의자료를 보자. (개인 pc에 저장함,링크는 생략) 말로 설명해 보자. [변수]와 [상수]의 차이점은 메모리에서 변수 영역의 주소값이 바뀔 수 있으면 [변수], 바뀌지 못하면 [상수]다. 변수 부분의 주소값은 항상 메모리의 데이터 영역중 하나를 가리키게 된다. 여기서 [변수]에 대한 변수 영역 메모리라면 어떤 데이터 영역을 가리킬지 그 주소를 바꿔줄 수 있다. 그래서 아래처럼 a 라는 [변수] 에 새로운 값이 할당되면 7이라는 값의 주소가 메모리의 데이터 영역에 새로 생기게 되고 메모리에서 a의 변수 .. 더보기 두번째 코딩테스트 [JS문법 종합반 2주차] : 풀이성공 두번째 코딩테스트를 풀어봤다. 이번에는 답안을 보지않고 풀이팁만 보고 풀 수 있었다. 문제는 아래와 같다. 자세한 내용은 url 참조 바란다. https://school.programmers.co.kr/learn/courses/30/lessons/12915?language=javascript 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있.. 더보기 new Set() 기본개념과 교집합 구하는 메소드 만들기 [JS문법 종합반 2주차 - 3] Set은 수학적 집합의 개념을 표현할 수 있는 문법이다. Set은 고유한 값을 저장하는 자료 구조이다. Set은 값만 저장하며, 키를 저장하지 않는다. Set은 값이 중복되지 않는 유일한 요소로만 구성된다. 같은 값을 두 번 넣는다면 저장되지 않는다. Set을 사용하면 다음과 같은 작업을 수행할 수 있다. 값 추가 및 값 존재여부 확인 값 삭제 모든 값 제거 Set 크기확인 위의 모든 기능들을 정리했고, 교집합 구하는 메소드를 정리해 보았다. 자바스크립트 내장 메소드인 filter()를 사용한다. // Set 두개를 정의한다. const setA = new Set([1, 2, 3, 4, 5]); const setB = new Set([2, 4]); // setA와 setB의 교집합을 구해 보자. cons.. 더보기 new Map() 완전정리 [JS문법 종합반 2주차 - 3] new Map() 기능은 {key-value} pair 를 저장한다. 객체도 그러하지만 new Map()만의 장점을 아래 정리해 본다. 1) key 에 문자열 뿐만 아니라 다양한 값이 올 수 있다. 2) myMap.keys() 와 같은 메소드로 iterator를 리턴받을 수 있으며 이 iterator는 이름만큼이나 반복문에 집어넣어 돌리기에 적합하다. 코드와 주석(!) 을 보자. const myMap = new Map(); // Map 하나를 새로 만든다. myMap.set('one', 1) // key-value pair 를 만든다. myMap.set('two', 2) myMap.set('three', 3) console.log(myMap.keys()) // key들의 iterator가 출력된다. fo.. 더보기 WIL : 자바스크립트의 방식으로 생각하려면 뭘 해야할까? 코딩테스트를 하고 나서 제목과 같은 질문이 생겼다. 코딩테스트는 어려웠다. 어려운 이유는 인간의 방식이 아니라 자바스크립트가 알아듣는 방식으로 생각해야 하기 때문이다. 테스트 문제는 어떤 문자열을 파라미터로 넣었을 때 p와 y의 갯수가 일치하면 true를, 불일치하면 false를 리턴하는 함수를 만드는 것이었다. 자세한 내용은 아래 포스팅에 있다. https://gamunbidev.tistory.com/31 나는 사람이기 때문에 문자열에서 p와 y의 갯수를 비교하려면 그냥 세어 보면 된다. 그런데 자바스크립트로 그걸 하려면 p가 있으면 +1을, y가 있으면 -1을 하는 함수를 만들어서 최종적으로 0이 나오는지를 확인해야 한다. 그러한 방식은 사람인 내 머릿속에 떠오르질 않았다. 어떻게 하면 떠오르게 될 .. 더보기 WIL: 고생이 많았던 언어 자바스크립트. ECMA Script란? ES5와 ES6의 차이 제목의 내용들을 간단히 정리해 보자. 일단 ECMA Script는 자바스크립트가 따르고 있는 표준안이다. Ecma International 이라는 정보통신 시스템 표준화 단체가 만든 ECMA-262 표준의 내용이 바로 ECMA Script 이다. ECMA Script는 브라우저의 엔진을 통해 동작하는 script 언어를 만들때, 변수는 이렇게 만들고, 함수는 이렇게 만들고 하는 문법 등을 규정한 문서이다. 그 언어 표준은 1997년 6월 초판 공개에 이어 2022년 6월 ECMA Script 2022에 이르기까지 발전하고 있다. ECMA Script는 현재의 자바스크립트와는 혼연일체가 된 표준이라고 할 수 있다. 자바스크립트를 만든 Netscape가 Ecma international에 자바스크립트를 언어.. 더보기 이전 1 ··· 3 4 5 6 7 8 9 ··· 12 다음