Tomato

JS

    JAVASCRIPT의 배열은 배열이 아니다?

    JAVASCRIPT의 배열은 배열이 아니다?

    해당 포스팅은 연결된 링크를 보고 이해한 내용을 정리합니다.[자료구조] 배열: 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 자료 구조하나의 타입으로 통일, 서로 연속적으로 인접함 = 밀집 배열(dense array) 인덱스를 통해 단 한번의 연산으로 임의의 요소에 접근(임의 접근: random access), 시간 복잡도 O(1)= 효율, 고속 동작검색 대상 요소의 메모리 주소 = 배열의 시작 메모리 주소 + 인덱스 * 요소의 바이트 수ex) 위의 그림 기준- 인덱스가 0인 요소의 메모리 주소: 1000 + 0 * 8 = 1000- 인덱스가 3인 요소의 메모리 주소: 1000 + 3 * 8 = 1024 But, 정렬되지 않은 배열에서 특정한 값을 탐색하는 경우에는 모든 배열 요소를 처음부터 값..

    정규표현식(Regular Expression)

    정규표현식(Regular Expression)

    문자열에서 특정 내용을 찾거나 대체, 발췌할 때 사용ex) 회원가입 화면 - 사용자로부터 전화번호 입력 받을 때, 전화번호가 유효한 지 체크하는 경우 const tel = '0101253128&';// 정규 표현식 리터럴const myRegExp = /^[0-9]+$/;console.log(myRegExp.test(tel)); // false전화번호에 오타를 내는 경우가 더러 있기 때문에 제대로 된 전화번호를 입력하지 않은 경우를 체크하기 위해서는 이러한 정규표현식이 필요하다. 다만, 정규표현식은 주석이나 공백을 허용하지 않고 `여러 기호`를 혼합하여 사용하기 때문에 가독성이 좋지 않다는 단점이 있다. 정규표현식은 리터럴 표기법으로 생성 가능하고 위의 사진과 같이 표현할 수 있다.정규표현식을 사용하는 J..

    JAVASCRIPT04

    JAVASCRIPT04

    해당 포스팅은 링크된 웹사이트를 보고 이해한 내용을 정리합니다.Strict modefunction foo() { x = 10;}console.log(x); // ?위와 같은 예제에서 `foo`함수 스코프에 변수 x에 대한 선언이 없음 - `상위 스코프 검색` - `암묵적 전역 변수`* 이때, 암묵적 전역 변수는 오류를 발생시키는 원인이 될 가능성이 커 `var`, `let`, `const` 키워드를 사용해 변수를 선언하고 사용하는 게 좋음 개발자의 숙명인 오류를 줄이기 위해 잠재적 오류 발생이 어려운 환경을 만들어 개발하게 하는 `strict mode`가 ES5부터 추가됨JS 언어의 문법을 `엄격`하게 적용해 기존에 무시되던 오류를 발생시킬 가능성이 높거나 JS 엔진 최적화 작업에 문제를 일으킬 수 있..

    JAVASCRIPT03

    JAVASCRIPT03

    해당 포스팅은 링크된 웹사이트를 보고 이해한 내용을 정리합니다.객체: `키(key)`와 `값(value)`로 구성된 `프로퍼티(property)`들의 집합: `프로퍼티(property) + 메소드(method)`로 구성된 집합* 프로퍼티 값: JS에서 사용할 수 있는 모든 값 사용 가능 = 함수 사용 가능 => `메소드` 프로퍼티: 프로퍼티를 식별하기 위한 식별자인 프로퍼티 `키`프로퍼티 키: 빈 문자열을 포함하는 모든 문자열 or symbol 값프로퍼티 값: 모든 값* 이미 존재하는 프로퍼티 키를 중복 선언하면 나중에 선언한 프로퍼티가 먼저 선언한 프로퍼티를 덮어씀* 배열과 달리 객체는 순서 보장 X 객체 생성 방법- `클래스 기반 객체 지향 언어` : 클래스 사전 정의, 필요한 시점에 `new`연산자..

    JAVASCRIPT02

    JAVASCRIPT02

    해당 포스팅은 링크된 웹사이트를 보고 이해한 내용을 정리합니다.변수(Variable)변수(Variable)란, 메모리 주소(Memory Address)에 접근하기 위해 사람이 이해할 수 있는 언어로 지정한 식별자(Identifier) 쉽게 말해, 메모리 상의 주소지를 의미해요!인사이드 아웃처럼 컴퓨터 내부에도 컴퓨터를 이루는 구성들 간의 작은 세상이 존재해요!인간의 주소지처럼, 컴퓨터 내부의 메모리 상의 주소지도 존재해요.그래야 어느 집에 누가 사는지 알 수 있으니까요. 변수에 들어가서 사는 친구의 이름이 값(value)이고 이를 저장해두어요. 우리 주민센터에서 하는 일이랑 같아요.거주지에 거주자를 저장해두잖아요. 세대주는 누구고, 가구원은 누가 있는지 같은 것들이요.그리고 저장된 값을 참조하기 위해 사..

    JAVASCRIPT01

    JAVASCRIPT01

    해당 포스팅은 링크된 웹사이트를 보고 이해한 내용을 정리합니다.프로그래밍사람과 사람이 대화를 하기 위해서는 통하는 말, 그러니까 언어가 있어야 하잖아요? 컴퓨터와 사람 사이의 대화에도 언어가 당연히 필요해요.0과 1 밖에 모르는 친구에게 내가 원하는 문제(요구사항)를 해결하도록 만들기 위해서 필요한 것을 "프로그래밍 언어"라고 하고 이를 하기 위한 과정을 프로그래밍이라 하기로 했어요. 그러면 프로그래밍은 도대체 어떻게 하는 걸까요?그걸 알기 위해서는 컴퓨터는 어떻게 문제를 받아들이고, 사람은 또 어떻게 문제를 받아들이는지 알아야 해요. 쉬운 예시를 들어봅시다.사람이 말하는 "소리 좀 키워줘~"에서 우리는 경험으로 소리를 얼만큼 올려야 할 지 알아요.그런데 컴퓨터는 아직 잘 모릅니다. 소리를 키워? 어떻게..