분류 전체보기 210

숫자 비교

두 개의 숫자가 같은 경우 1을 다른 경우 -1을 반환하는 함수 먼저 내가 작성한 코드이다 function solution(num1, num2) { var answer = 1; if (num1-num2 !== 0){ answer = -1 } return answer; } 작동은 문제 없었지만 const solution = (num1, num2) => num1 === num2 ? 1 : -1 위처럼 짧게 삼항연산자와 화살표 함수를 이용해 만들수도 있고 function solution(num1, num2) { return ((num1 === num2)-0.5)*2; } 이렇게 다른 방식으로 만들 수도 있었다 확실히 다양한 방식의 생각과 배운 것을 활용할 수 있어야겠다

출생년도 구하기

2022년 기준으로 어떤 사람의 나이를 가지고 출생년도를 구하는 문제이다 태어난 연도부터 1살이다 function solution(age) { var answer = 2022-age+1; console.log(`2022년 기준 40살이므로 ${answer}년생입니다`) return answer; } 2022년을 기준으로하기에 명확하게 년도를 추가해 주었다 하지만 저것은 문제가 2022년에 나왔기 때문이라고 생각하고 만약에 지금 현재의 연도를 기준으로 한다면 어떨까? 2023, 2024 매년 바꿔줘야하나? 아래 코드를 보면 // Date.prototype.getFullYear() : 주어진 날짜의 현지 시간 기준 연도를 반환합니다. function solution(age) { return new Date(..

몫 구하기

이것도 문제 없이 풀긴 했다 몫만 구하는 거니까 나머지 연산자로 나머지를 빼고 계산하면 되는 거라고 생각해서 function solution(num1, num2) { var answer = num1 - (num1%num2); return answer/num2; } 위 코드를 작성하였는데 // Math.trunc() : 주어진 값의 소수부분을 제거하고 숫자의 정수부분을 반환합니다. const solution = (num1, num2) => Math.trunc(num1 / num2) Math를 활용하는 방법도 있었으며 function solution(num1, num2) { return ~~(num1/num2); } ~~(틸트) 연산자를 활용하는 경우도 있었다

단순한 더하기 문제였지만

정수 num1과 num2가 주어질 때, num1과 num2의 합을 return하도록 soltuion 함수를 완성해주세요. -50,000 ≤ num1 ≤ 50,000 -50,000 ≤ num2 ≤ 50,000 단순한 더하기 문제였다 function solution(num1, num2) { return num1+num2; } 이렇게 풀고 제출했다 // 숫자 범위에 대한 제한 조건 추가 function solution(num1, num2) { if(!(-50000 num2 || num2 > 50000) return; return num1 + num2; } 조건을 추가한 경우도 이렇게 훨씬 간단하게 만들 수 있었다 심지어 가독성은 좀 떨어져도 저렇게 아래와 같이 에러처리까지 한 경우도 있었다 function s..

Set

// Set // - 고유한 값을 저장하는 자료구조다. // - 값만 저장한다. // - 키를 저장하지는 않는다 // - 값이 중복되지 않는 유일한 요소로만 구성된다. // 값 추가, 검색, 값 삭제, 모든 값 제거, 존재 여부 확인 // 값 추가 const mySet = new Set(); mySet.add("value1"); mySet.add("value2"); mySet.add("value2"); // 값이 중복되지 않는 유일한 요소로만 구성 // -> 중복된 값을 추가하면 기존 값이 있기 때문에 무시된다. mySet.add("value4"); mySet.add("value5"); mySet.add("value7"); console.log(mySet) // Set(5) { 'value1', 'val..

Map

// Map // JS -> 객체, 배열 : 많고, 다양하고, 복잡한 프로그램을 만들어 왔지만 // 그럼에도, 현실세계 반영하기에는 좀 많이 어려웠다. // Map, Set 추가적인 자료구조가 등장했다. // Map, Set의 목적 : 데이터의 구성, 검색, 사용을 효율적으로 처리 // -> 기존의 배열 객체보다 // 1. Map // - Key / Value // - Key에 어떤 데이터타입(유형)도 다 들어올 수 있다.(객체에서는 문자만 들어감) // - Map은 키가 정렬된 순서로 저장되기 때문이다. // 기능 : 검색, 삭제, 제거, 여부확인 등 const myMap = new Map(); // 생성 myMap.set('key', 'value'); // 프로퍼티 추가 // ... // ... le..

일급 객체로서의 함수 (2)

// 일급객체로서의 함수(2) // 객체의 프로퍼티로 함수가 사용되는 경우(메서드) const person = { name : "mjm", age : 30, sayHello : function () { console.log(`Hello, my name is ${this.name}`) } // sayHello : () => { // console.log(`Hello, my name is ${this.name}`) // }, 화살표 함수는 this 를 바인딩 하지 않는다. 나중에 배울 거고 중요한 거다 }; person.sayHello(); // 배열의 요소로 함수를 할당 const myArr = [ function (a,b) { return a + b; }, // 0번째 요소 function (a,b) {..

일급 객체 객체로서의 함수 (1)

일급객체(First-class Object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. [위키백과] // 1. 변수에 함수를 할당할 수 있다. // 함수가 마치 값으로 취급된다. // 함수가 나중에 사용될 수 있도록 조치가 되었다. const sayHello = function () { console.log (`Hello!`); }; // 2. 함수를 인자로 다른 함수에 전달할 수가 있다. // 2-1. 콜백함수 : 매개변수로써 쓰이는 함수 // 2-2. 고차함수 : 함수를 인자로 받거나 return하는 함수 // 고차함수의 한 종류로 콜백함수가 있다. const callFunction = function (func){ // 매개변수로 받은 변수가 함수이다. func(..

es6(2)

// 1. 단축 속성명 : property shorthend // 정말 많이 쓰이고 쓰는 것보다 모르면 해석하기가 힘들다 const name = "nbc"; const age = "30"; // key - value가 있는 객체이다 // {name : age} 가 아니다 // 객체이기에 변수명이 중복되지 않는다 const obj = { name, age }; // const obj = { // name : name, // age : age // }; // key - value가 같다면 생락 가능하다 // 2. 전개 구문 = spread oprerator // 요소들이 전개 된다 // 기존 주고를 벗어버리고 새로운 구조를 덧입혀야 될 때 사용한다 // 구조분해할당과 함께 가장 많이 사용되는 es6 문법 중..