일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 리액트
- Next.js13
- 자바스크립트 연결리스트
- leetcode
- CSS
- 자바스크립트 알고리즘
- JavaScript
- Next
- 리액트쿼리
- 자바스크립트 문제풀이
- next13
- til
- leetcode문제풀이
- 객체 프로퍼티
- Baekjoon
- NPM
- 자바스크립트 문제
- 타입스크립트
- 프로그래머스
- 프론트엔드
- stack문제
- 자바스크립트 문제 풀이
- 자바스크립트 알고리즘 문제
- 자바스크립트
- HTML
- 자바스크립트코딩테스트
- JS
- lodash
- 제로베이스
- 알고리즘문제풀이
- Today
- Total
목록자바스크립트 (30)
코드노트
객체는 원시값이 아닌 참조값으로 변경이 자유롭다고 했다. 자바스크립트 원시값 그리고 객체,참조값 원시 값, 참조 값의 차이 - 원시값은 변경 불가능한 값, 참조값은 변경이 가능한 값 * 객체 타입 = 참조 값 / 즉 객체는 변경이 가능한 값이다. - 원시값을 변수에 할당하면 변수에는 실제 값이 저 codeno-te.tistory.com - 여기서 문제점이 생긴다. - 객체를 전달한 뒤 변경할 경우에는 원본이 훼손된다. - 외부 상태, 즉 함수 외부에서 함수 몸체 내부로 전달한 참조값에 의해서 원본 객체가 변경되는 부수효과가 발생한다. * 코드의 복잡성을 증가시킨다. * 가독성을 해치는 원인이 된다. * 코드가 많아지면 외부 상태가 변하는지 아닌지 알기 어렵다.( 에러 발생 위험이 크다) - 객체가 변경되..
원시 값, 참조 값의 차이 - 원시값은 변경 불가능한 값, 참조값은 변경이 가능한 값 * 객체 타입 = 참조 값 / 즉 객체는 변경이 가능한 값이다. - 원시값을 변수에 할당하면 변수에는 실제 값이 저장 된다. : * 값에 의한 전달 - 객체를 변수에 할당하면 변수에는 참조 값이 저장된다. : * 참조에 의한 전달 원시 값 - 한번 생성된 원시 값은 읽기 전용 값으로 변경할 수 없다. *즉 원시 값이 변경 불가능 하다 라는 말은 원시 값 자체를 변경할 수 없다는 것! 변수 값은 변경이 가능하다. => 교체할 수 있다. * 여기서 상수도 그럼 변경이 가능한가? 아니다 상수는 애초에 한번만 할당이 가능하다. const a = "곽튜브"; a = "빠니보틀"; console.log(a); // TypeErro..
클로저(Closure) - 함수와 함수가 선언된 어휘적 환경(렉시컬 환경)의 조합 - 외부 함수보다 충첩함수가 더 오래 유지되는 경우 중첩 함수는 이미 생명주기가 종료한 외부 함수의 변수를 참조 - 중첩 함수 == 클로저 -> 내부함수가 외부함수 변수에 접근 가능 function init() { // name은 init에 의해 생성된 지역 변수 var name = "Mozilla"; // displayName() 은 내부 함수이며, 클로저 function displayName() { // 부모 함수에서 선언된 변수를 사용 alert(name); } displayName(); } init(); 쉽게 이야기하자면 함수안에 함수를 만들었을때 그 외부에 있는 변수를 사용할 수 있다. - 부모 함수에서 선언된 변..
문제 설명 더보기 You are given an integer array height of length n. There are n vertical lines drawn such that the two endpoints of the ith line are (i, 0) and (i, height[i]). Find two lines that together with the x-axis form a container, such that the container contains the most water. Return the maximum amount of water a container can store. height길이 의 정수 배열이 제공 됩니다 n. 선의 두 끝점이 및 가 되도록 n수직선이 그려집니다. i..
문제 설명 더보기 Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0. 부호 있는 32비트 정수 x가 주어지면 숫자가 반전된 x를 반환합니다. x를 반전하면 값이 부호 있는 32비트 정수 범위 를 벗어나면 0을 반환합니다. var reverse = function (x) { let y = x; if (x < 0) x *= -1; let str = String(x).split("").reverse().join(""); if (y < 0) str ..
더보기 문제 설명 a, b, c, d 순으로 저장된다고 했을 때, b, a, c, d 순으로 꺼내기 위해서는 push, push, pop, pop, push, pop, push, pop 순서대로 꺼내면 된다. 꺼내야하는 알파벳 순서가 정해질때 push/pop으로 꺼내져야 하는 동작을 계산하는 프로그램을 작성해야한다. push = 0; pop = 0; 배열로 반환한다. * 주어진 순서로 못 꺼낼 경우, 빈 배열로 반환한다. #1 입력값 = bacd #1 출력값 = [0, 0, 1, 1, 0, 1, 0, 1] #2 입력값 = dabc #2 출력값 = [] #3 입력값 = edcfgbijha #3 출력값 = [ 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1..
더보기 문제 설명 - 같은 짝의 괄호 위치를 찾아 출력 - 입력은 계산 수식으로 주어지며, 괄호의 짝 별 위치를 [시작, 끝] 으로 찾아 2차원 배열 형태로 반환 - 위치 시작 값은 0으로 시작, 하나라도 짝이 맞지 않을 경우 빈 배열을 반환한다. 입력 값 - "(a+b)" - "(a*(b+c)+d)" - "(a*(b+c)+d+(e)" - "(a*(b+c)+d)+e)" - "(a*(b+c)+d)+(e*(f+g))" 출력 값 #1 [ [ 0, 4 ] ] #2 [ [ 3, 7 ], [ 0, 10 ] ] #3 [] #4 [] #5 [ [ 3, 7 ], [ 0, 10 ], [ 15, 19 ], [ 12, 20 ] ] - 2차원 배열에 넣어야하는게 처음에 문제가 어려웠다.. - 빈 배열을 넣고 따로 문제를 계산해..
문제는 간단하다 head → 1 → 2 → 3 → null 이렇게 node가 연결되어 있는 연결리스트를 head → 3 → 2 → 1 → null 역순! 반대로 출력하게 수정해야한다. 연결리스트에 대해서 이해가 되어야지만 풀 수 있는 문제였다. 이 문제를 이해하는데 하루가 넘게 걸렸다... 하... 그만큼 성취감은 두배였지만... 제발 바로 이해해줘 내 머리야.. 우선 코드부터 보면서 설명을 해야할거 같다. function answer(ll) { let current = ll.head, prev = null, next; while (current !== null) { next = current.next; current.next = prev; prev = current; current = next; } l..
javaScript란? - 객체(Object)기반의 스크립트 프로그래밍 언어 - ECMAScript 사양을 준수하는 범용 스크립팅 언어 / ECMAScript : 자바스크립트를 표준화하기 위해 만들어짐 - 자바와 직접적인 연관은 없으며, 웹의 동적 동작을 구현하기 위해 제작 - Mocha -> LiveScript -> JavaScript로 명칭 변경 - JavaScript는 JS엔진위에서 수행되며, Google V8, Firefox SpiderMonkey, Edge Chakra 존재 - JavaScript는 서버가 아니라 클라이언트에서 실행 - 인터프리터 방식으로 다른 언어에 비해 유연함 자바스크립트 기본 문법 변수 - 분류된 데이터에 대하여 담을 수 있는 이름을 가진 어떤 공간 변수 선언 방식 - 데..
Valid Parentheses 유효한 괄호 더보기 문제설명 '(', ')', '{', '}', '[' 및 ']' 문자만 포함하는 문자열이 주어지면 입력 문자열이 유효한지 확인합니다. 다음과 같은 경우 입력 문자열이 유효합니다. 열린 브래킷은 동일한 유형의 브래킷으로 닫아야 합니다. 열린 브래킷은 올바른 순서로 닫아야 합니다. 모든 닫기 대괄호에는 동일한 유형의 해당 여는 대괄호가 있습니다. - 이번 문제는 stack을 활용하는 문제이다. - 간단하게 말하면 입력값을 넣어놓고 입력값에 맞는 값들을 빼면서 length를 0으로 만들어내면 된다. var isValid = function (s) { const stack = []; for (let i = 0; i < s.length; i++) { if (s[i..