Til

    [TIL] JS 데이터 타입, 형변환, 호이스팅, 엄격모드, this

    ✍ Today I Learned undefined - 값이 할당되지 않아 '타입'이 정해지지 않은 것을 의미한다. (정의되지 않은 변수, 값이 할당되지 않은 변수) null - object 타입이며, '값'이 정해지지 않은 것을 의미한다. typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true typeof로는 배열(또는 Date)인지 아닌지 확인할 수 없다. (이럴 땐 isArray() 사용) 빈 객체로 초기화하고 싶을 때? string은 "", number는 0, array는 [], object는 {}, 나머지는 null 설정 Number()는 빈 문자열은 0으로 반환,..

    [TIL] JS Set, 로또 번호 추첨기, Map

    ✍ Today I Learned [생일, 디데이 계산기] getTime() 메서드는 1970년 1월 0시 0분 0초부터 현재까지의 시간을 밀리초 단위로 환산한 값을 반환한다. Date() 객체를 할당한 변수끼리는 밀리 초로 연산이 가능하다. 기간을 출력할 때에는 주로 밀리초 단위를 사용하여 연산한다. 날짜 관련 데이터는 moment.js 또는 FullCalendar 를 활용하는 것도 좋은 방법! Set 객체에서 entries() 메서드로 값을 출력하려면 반복문을 중첩으로 사용해야 한다. 객체도 연관 배열이라고 볼 수 있다. [로또 번호 추첨기 ver. 1 (Set을 사용하기)] Set객체는 중복을 허용하지 않기 때문에 새로운 Set의 size가 6이 될 때까지 while문을 실행한다. 빈 배열을 만들어서..

    [TIL] JS 배열 순환 메서드, break, continue, Date

    ✍ Today I Learned [조건에 맞는 데이터 출력하기] 1번 문제에서 사용자한테 입력받은 key값으로 데이터를 출력하려면 KeyName이라는 변수를 선언하고 el[keyName] 이런 방식으로 접근하면 된다. map() 메서드는 새로운 배열을 만들어내지만 filter() 메서드는 말 그대로 필터링이다. return이 true인 요소만을 반환한다. 너무 return 값을 의식하지 말자. 집합적인 데이터 관리에 있어서 명칭이 필요하면 객체, 동일한 형태로 쌓는 거면 배열. 배열과 객체를 반드시 번갈아 가면서 사용할 필요는 없다. 연관 배열은 key값이 있는 배열이니까 keys() 메서드를 사용할 수 있을 줄 알았는데 작동하지 않는다. let과 const 키워드는 Block Scope를 제공한다. 전..

    [TIL] JS forEach(), map(), filter()

    ✍ Today I Learned [절기를 맞춰라] 결괏값 저장은 전역 변수뿐만 아니라 배열도 활용할 수 있다. 가져오려는 데이터가 값 자체인지, 배열의 길이인지, 데이터 타입이 무엇인지 흐름을 놓치지 말자. 배열을 전체 순회하려면 for of 문을 활용한다. (반복문 안에서 삼항 연산자도 사용 가능) 데이터를 다룰 때 배열과 객체를 혼용하여 다루는 경우가 많다. (JSON 데이터가 그런 형태) // https://finance.naver.com/ 의 TOP 종목 데이터를 구조화 해보기 const top = { "거래상위": [ { name: 'KODEX 200선물인버스2X', price: 2515, updown: -100, ratio: -3.82, }, { name: '메이슨캐피탈', price: 786..

    [TIL] JS 배열

    ✍ Today I Learned while 문은 주로 반복 횟수가 예상되지 않을 때, do while 문은 일단 한 번 실행해야 할 때 사용한다. for of 문은 주로 배열을 다룰 때, for in 문은 주로 객체를 다룰 때 사용한다. 배열의 식별자는 index, 객체의 식별자는 key값 const로 배열을 선언했을 때 배열의 값은 바꿀 수 있어도 배열 자체를 변경할 수는 없다. 따라서 배열의 초기화가 필요한 로직은 let으로 선언한다. 객체는 가급적 객체이름.프로퍼티이름 방식으로 접근하는 것이 좋다. 객체의 키값으로 숫자는 사용하지 않는 것이 좋다. 연관 배열은 숫자로 된 index 대신 문자열로 된 key를 사용하는 배열이다. Array 객체가 아니므로 length 프로퍼티의 값이 0이다. [섭씨를..

    [TIL] JS 제어문 활용

    ✍ Today I Learned [while문 퀴즈 3개] 2로 나눈 나머지가 0이면 짝수, 1이면 홀수 정수 n의 약수를 모두 출력하려면? 정수 n을 최솟값인 1부터 최댓값인 자기 자신까지 나눠서 나머지가 0이면 약수 3자리 양의 정수 s에서 1자리 양의 정수 a의 배수를 구하려면? 최솟값인 1부터 최댓값이 자기 자신 s를 a로 나눠서 나머지가 0이면 s안에서 a의 배수 3번 퀴즈는 각각의 count를 가지기 때문에 else if 가 아니라 if로 나열해야 한다. [중첩 반복문 활용 - 구구단 전체 출력] 머리로 시뮬레이션이 가장 안 되는 중첩 반복문.. 침착하게 기준에 되는 반복 시점을 잘 생각해보기 먼저 각 반복 시점을 생각하고 그 시점에 실행되어야 하는 구문을 떠올리면 어렵지 않다. 중첩 반복문은..

    [TIL] JS 업다운, 호칭, 가위바위보, 마지막일

    ✍ Today I Learned [Up Down Game] 만들면서 느낀 점 조건문을 실생활에도 도입해보자! 데이터를 가져올 땐 언제나 데이터 타입을 신경 써야 한다. 자바스크립트로 데이터를 받아올 때 value속성의 데이터는 모두 string으로 받아온다. 전역 변수는 초기화까지 세팅해주는 것이 좋다. 숫자로 연산할 거라면 0으로 세팅! 전역 변수는 최소한으로, 꼭 필요할 때만 사용한다. 조건절을 만들 때는 경우의 수를 잘 따져보자. input type number의 min, max 속성은 button이 submit 속성일 때만 작동한다. 함수는 기능적으로 분리해야 한다. [호칭 알려주기] 만들면서 느낀 점 조건절의 경우의 수 대분류부터 소분류로 잘 따져보자. 하나의 return에 여러 개의 값을 넘겨..

    [TIL] JS 이미지 파일 판별, 숫자 객체&메서드

    ✍ Today I Learned 삼항 연산자 다시 짚고 넘어가기! // 조건항(true of false) ? true일 때 필요한 값이나 코드 : false 일 때 필요한 값이나 코드 let result = condition ? (when true) value or code : (when false) value or code; let rv = C ? T : F; 템플릿 리터럴은 백 틱(`)을 사용하여 문자열을 정의한다. ES6 기능으로 ${...} 안에 코드를 작성할 수 있다. 자바스크립트에서는 정수와 실수를 따로 구분하지 않고, 모든 수를 실수 하나로만 표현한다. + 연산자는 문자열에서는 연결자로, 숫자에서만 덧셈으로 작동한다. 숫자로 이루어진 문자열은 +연산을 제외한 다른 연산에서 숫자 타입으로 자동..