분류 전체보기 66

2024.01.12 TIL # Promise.then # async / await

오늘 배운 것 1. browser 1개 당 1개의 html만 가질 수 있다. - 코딩하면서 그냥 문득 궁금했던 것이 index.html이 main.js를 가져오고, main.js가 다시 movie.js를 import하고 detail.js가 movie.js에 있는 것들을 import 하면 detail.html이 detail.js을 type=module 한다면 detail.html과 index.html이 연결된 것이 아닐까? 했는데 브라우저 1개 당 1개의 html 파일을 가질 수 있다고 한다ㅋㅋ 2. 전역객체에서 선언된 변수는 지역변수로 쓰일 수 있지만, 함수 등 지역에서 선언된 변수는 전역에서 선언될 수 없다. - call stack에 전역이 제일 아래에 있기 때문에 아래에서 선언된 변수는 위에 쌓이는 ..

TIL 2024.01.15

2024.01.10 TIL

오늘은 너무 힘들고 시간이 없어서 느낀 점만 쓸 예정 팀프로젝트를 처음으로 시작했는데 어디서부터 어떻게 건드려야 할지 몰라서 처음 한두시간은 그냥 고민하느라 지나간 것 같다. 또 팀 프로젝트를 하면 분업을 어떻게 해야하는지가 광건인데, 기능구현이 4개고 한 사람마다 그 기능구현을 해야한다면 우리는 배우는 입장에서 각각의 기능을 직접 만들어보지 못해서 못 배우는 것 아닌가? 하는 생각에 더 분업이 어려운 것 같다. 아무리 팀원 중에 한 명이 코드를 짜고 코드리뷰를 해준다고 해도 직접 짜 보는 것과는 천지 차이니까 말이다. 팀원들과 의논 끝에 우선 한명씩 기능구현을 해보기로 하고 나중에 자세히 코드에 대해서 의견을 나눠보기로 했다. 한 기능을 구현하는데에 5시간이 넘게 걸렸다. 나의 한계란... 너무 가까운..

TIL 2024.01.10

2024.01.09 TIL #type="module" #export #import #arr.join() #클로져 #data-id="id"

type = "module" 1. 독립적인 스콥임을 알려줌 => 협업 중 충돌 막음 2. 지연 실행 : UI 개선 html을 파싱하다가 js파일 갔다가 다시 파싱하는 게 아니라, html파싱 먼저 하고 백그라운드에서 js 파일 다운로드 후 파싱이 끝나면 실행권 넘겨줌 3. 기본적으로 use strict Javascript는 변수 선언을 안하고 a = apple; 이렇게도 되긴하는데, module로 하면 변수 선언을 꼭 해줘야 함 다른 스콥인데 내보내고 가져오고 싶을 때 내보내기 export function abc( ) { } / const 함수이름 = () => { } 등등 가져오 import { ~~ } from "./movie.js" - import가 있으면 그 부분부터 먼저 다운받고 실행된 다음에 ..

TIL 2024.01.09

2024.01.08 TIL #Generator함수 #값 교환하기

Generator 함수 Generator - * 가 붙은 함수 - 호출되면 iterator 객체를 반환 - 이 iterator 객체는 next 메서드를 통해 제어됨 Yield - generator 함수를 일시중단하는 역할 -> 호출자에게 "제어"가 반환됨(중단할지 말지) - 반환된 값은 { value : undefined, done : } 형태로 반환됨 Next - generator 함수를 다음 yield 까지 실행 -> 실행된 yield 값을 반환 - 만약 generator 함수가 종료되면 { value : undefined, done : true} 를 반환 자 그럼 이제 코드로 한번 봐 보자. // (1) 제너레이터 함수 안에서 쓸 addcoffee 함수 선언 var addCoffee = functi..

TIL 2024.01.08

2024.01.05 TIL 새로 알게 된 점 #While문 안의try catch문 #setter 메서드

오늘 TIL은 공부하다가 궁금했던 점을 쓸 예정 class HttpError extends Error { constructor(response) { super(`${response.status} for ${response.url}`); this.name = 'HttpError'; this.response = response; } } async function loadJson(url) { const response = await fetch(url) if (response.status == 200) { return response.json(); } else { throw new HttpError(response); } } async function narutoIsNotOtaku() { let title; l..

TIL 2024.01.05

2024.01.04 TIL #알고리즘 #반복문 안 return문

[알고리즘 예제 1] 어떤 수 n이 소수인지 판별해라. - 소수라는 것의 정의가 '1과 자기자신 이외에는 약수를 갖지 않는 수' 여서 이렇게 코드를 짜봤다. 내 코드 function abc(num) { for ( i = 2; i < num; i++ ) { if ( num / num === 1 && num % i !== 0 ) { return true; } else { return false } } } console.log(abc(25)); // true 처음에 이렇게 풀어봤는데 25를 넣었더니 true가 나왔다. 그 외에 24를 넣어도, 12를 넣어도 true가 나온다. 12, 24, 25는 소수가 아닌데.. 무엇이 잘못 되었을까? 그 이유는 바로 반복문 안에 여러 개의 return 문이 있을 때, 첫 ..

TIL 2024.01.04

2024.01.03 TIL #명시적 This binding #apply #bind

[예제 1] for문을 사용하지 않고 numbers라는 배열의 요소 중 최댓값과 최솟값을 찾아라. var numbers = [10, 20, 3, 16, 45]; var max = Math.max.apply(null, numbers); var min = Math.min.apply(null, numbers); . apply ( { this로 명시하고자 하는 것 }, [ 배열 ] ) 1) apply를 사용해서 for문을 사용하지 않고 바로 함수가 실행될 수 있도록 2) 지금은 this를 굳이 바인딩할 필요가 없으니까 null 값 넣어주기 console.log(max,min); // 45 3 근데 그냥 이렇게 하면 되는 거 아닌가? var max1 = Math.max(numbers); console.log(ma..

TIL 2024.01.03

2024.01.02 TIL #오름차순 #sort #replace(a,b)

예제 1 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. arr. sort( ) 함수 - arr 배열 내의 기존 요소들이..

TIL 2024.01.02

2023.12.29 TIL Javascript #object #객체 메소드 #객체비교 #객체병합

객체 특징 - key : value 형식 - 장점: 하나의 변수에 여러 값을 넣을 수 있음! 객체 메소드 (객체가 가진 여러가지 기능) 1. Object.keys() - 객체의 key 값을 가져오겠다! let person = { name : "홍길동", age :30, gender : "남자" }; let keys_array = Object.keys(person) => keys_array라는 변수에 person이라는 객체의 key값들을 배열 형태로 담겠다. - 주의! Object 의 O는 대문자 - 변수의 이름은 아무거나해도 되지만 Object.keys() 는 정해져 있는 형식 (첨에 변수 이름도 keys라고 해서 헷갈렸음ㅎㅎ) console.log(keys_array); => ['name', 'age'..

TIL 2023.12.29

2023.12.28 TIL Firebase 한 컬렉션에 여러 문서가 있을 때 데이터 불러오기

Firebase에서 데이터 불러오기 > 한 컬렉션 안에 여러 문서가 있을 때 데이터 불러오기 Firebase에서 데이터를 불러올 때는 보통 이 뼈대를 쓴다. let docs = await getDocs(collection(db, "콜렉션이름")); docs.forEach((doc) => { let row = doc.data(); console.log(row) }); 그러고는 Firebase를 유심히 보는데, 지금까지는 하나의 콜렉션 안에 > 하나의 문서 안에 있는 데이터만 꺼내왔었는데 문득 여러 개의 콜렉션이라면? 또는 하나의 콜렉션이라도 그 안에 여러 개의 문서가 있다면? 이라는 의문점이 들었다. 예시로 Firebase에 mbti라는 하나의 컬렉션 안에 ourmbti 와 theirmbti 라고 두 개의..

TIL 2023.12.28