본문 바로가기

Frontend/JavaScript30

[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 문자열 다루기 기본 📍 프로그래머스 1단계 - 문자열 다루기 기본 프로그래머스 1단계 - 문자열 다루기 기본 ⚡️ 나의 풀이 문자열로 받은 값을 숫자로 변환해야 하는데 단순 Number 함수를 사용하니까 오답판정을 받았다. 곰곰이 생각해보니까 e(지수)값과 . 소수 값도 Number로 통해서 숫자로 치환하기 때문이다. 문제는 숫자로만 구성되어있어야 하므로 e, .은 문자 그대로를 받아 false를 리턴해야 한다. 따라서 초기에 e를 찾아주는 조건을 넣었고 숫자로 바꿀 때는 isNaN 함수를 사용해서 숫자로 바꿀 수 있는지 여부를 확인했다. // 나의 코드 function solution(s) { if (s.indexOf('e') > 0){ return false } if ((s.length === 4 || s.length .. 2021. 7. 25.
[ 자바스크립트(JavaScript) ] 배열의 특정 인덱스를 제거하거나 특정 범위만 반환하는 함수, filter, splice, slice 📍 배열의 특정 인덱스를 제거하거나 특정 범위만 반환하는 함수, filter, splice, slice 알고리즘 문제를 풀다가 배열의 특정 원소나 인덱스를 삭제하거나 특정 범위를 제거하고 싶어 MDN을 찾아보니까 여러가지 함수가 존재했다. 상황마다 다르지만 로직을 구현할 때 다음의 선택지를 보고 골라서 사용하면 된다. 원본 배열을 변경하고 싶지않고 특정 인덱스를 제거하고 싶을 때(새로운 변수에 선언하고 싶을 때) filter: 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다. arr.filter(callback(element[, index ?[, array ?]])[, thisArg ?]) 원본 배열을 변경하고 특정 인덱스를 제거하고 싶을 때(새로운 변수에 선언하고 싶을 않을 때.. 2021. 7. 23.
[ 자바스크립트(JavaScript) ] Prototype과 prototype property, __proto__ 그리고 prototype chain 📍 Class vs ProtoType JavaScript는 객체지향프로그래밍을 지원 하지만 Class 문법을 사용하지 않고 대신 Prototype 문법을 사용한다. (ES6 이후에 class 문법이 들어왔지만 이는 JS가 class 기반의 문법으로 바뀐 것은 아니다.) 그렇다면 class처럼 사용하는 문법과 prototype 문법은 언제 사용할까? 다음 코드를 살펴보자. // use class function myInfo() { this.name = 'AYW' this.age = 27 } const myName = new myInfo(); const myAge = new myInfo(); console.log(myName.name); // AYW console.log(myAge.age); // 27 //.. 2021. 7. 16.
[ 자바스크립트(JavaScript) ] Spread 연산자(...)의 활용 📍 Spread 연산자(...)의 활용 TS(TypeScript)를 공부하다가 Spread를 다양한 곳에 사용함을 깨닫고 정리하기 위해 글을 남긴다. 대체로 다음과 같은 상황에서 자주 쓰인다. 객체 복사(주소 참조가 아닌 값 복사, origin 값 변경 X) 객체 병합(서로 다른 객체를 하나의 객체로 합칠 수 있다.) 객체 특정 값 변경(useState 사용 시, 불변성을 유지하기 위해 특정 값만 `update`하는 방법) 잔여 연산자(rest operator) 사용(특정 값을 제외한 나머지를 별도의 변수에 저장하고 싶을 때) 다음의 코드를 하나씩 살펴보자. // 1. 객체 복사 // * spread 연산자 미 사용(주소 참조, 본래의 값이 바뀐다.) const myScore = [80, 85, 90];.. 2021. 7. 12.
[ 자바스크립트(JavaScript) ] Call by Value, Call by reference, Call by sharing 📍 Call by Value, Call by reference, Call by sharing CS 공부를 하며 Call by Value, Call by Reference에 대해서 배우고 있는데, 헷갈리는 글들이 많았다. 결론적으로 JS에서는 Call by reference, Call by sharing 두 용어보다 Call by Value 용어를 사용하는 것이 알맞다. 다음 예시를 들어보자. // 원시값 변경시도 function foo(argument){ argument = 10; console.log(argument) // 10 } // 이해하기 쉽게 작성한 함수 function foo(){ let argument = 5; argument = 10; console.log(argument) // 10 }.. 2021. 7. 8.