본문 바로가기

자바스크립트

(50)
논리 연산자 첫 번째 truthy를 찾는 OR 연산자 '||' OR 연산자와 피연산자가 여러 개인 경우: result = value1 || value2 || value3; 이때, OR 연산자는 가장 왼쪽 피연산자부터 시작해 오른쪽으로 나아가며 피연산자를 평가합니다. 각 피연산자를 불린형으로 변환합니다. 변환 후 그 값이 true이면 연산을 멈추고 해당 피연산자의 변환 전 원래 값을 반환합니다. 피연산자 모두를 평가한 경우 (모든 피연산자가 false로 평가되는 경우)엔 마지막 피연산자를 반환합니다. 여기서 핵심은 반환 값이 형 변환을 하지 않은 원래 값이라는 것입니다. 정리해 보자면 이렇습니다. OR 연산자를 여러 개 체이닝(chaining) 하면 첫 번째 truthy를 반환합니다. 피연산자에 truthy가 하나도 ..
변수(Variable) 변수는 프로그램을 작성하는 데 가장 중요한 요소입니다. 프로그램은 알고리즘을 사용하여 문제를 해결하는데, 알고리즘을 표현하기 위해서는 대부분 변수를 필수로 사용해야 합니다. 변수는 값을 담기 위해 이름을 붙인 상자입니다. 변수는 변할 수 있는 데이터입니다. (숫자, 문자열, 객체, 배열 등...) 변수를 선언(declaration)하기 위해서는 let, const를 사용합니다. let sum; 이 문장이 실행되면 메모리에는 sum이라는 이름이 붙은 영역이 생성됩니다. 위 코드의 let은 자바스크립트 키워드로 변수를 선언하기 위한 선언자입니다. sum 부분은 변수 이름이라고 부르며, 이 변수 이름을 이용해 변수 값을 읽거나 쓸 수 있습니다. sum = 5; 이렇게 하면 sum이라는 변수에 5라는 값을 할당..
Object.fromEntries() fromEntries()는 배열을 객체로 묶어주는 메소드 입니다. const entries = new Map([ ['foo', 'bar'], ['baz', 42] ]); const obj = Object.fromEntries(entries); console.log(obj); // expected output: Object { foo: "bar", baz: 42 } 객체를 배열로 만들어주는 entries()의 반대입니다. 출처: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries Object.fromEntries() - JavaScript | MDN Object.fromEntries()..
추상화(abstraction) 추상화(abstraction)란? 복잡한 것들을 목적에 맞게 단순화 하는 것 추상화를 알아보기 전에, 추상이라는 단어의 뜻을 알아봅시다. 추상抽象(뽑을 추, 코끼리 상) 추상이란 여러가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용입니다. 복잡한 구체적인 정보들은 숨기고 꼭 필요한 핵심만 뽑아내서 표현하는 방식을 추상화라고 합니다. 생각해보면, 우리의 일상생활에 많은 것들이 추상화의 결과물입니다. 많은 글들을 함축적인 의미로 나타낸 책의 제목이나, 몇 시간 동안 펼쳐지는 내용을 짧게 요약한 영화의 줄거리도 결국에는 목적에 맞게 꼭 필요한 핵심만 표현하는 추상화라고 할 수 있습니다. 이런 의미에서 보면, 복잡한 것들을 목적에 맞게 단순화 하는 것도 추상화라고 할 수 있습니다. 어..
배열 내장 고차 함수 내장 고차함수란? 자바스크립트에는 기본적으로 내장된 고차함수가 있습니다. 그중에서 배열 메소드들 중 일부가 대표적인 고차함수에 해당합니다. arr.forEach() // 파라미터로 콜백 함수를 받아 주어진 함수를 배열 요소 각각에 대해 실행하는 메서드 //! forEach는 map() 메서드와 비슷하지만 따로 return하는 값이 없다 //! 즉, callback 함수에 의해서 어떤 결과물을 내놓고 싶으면 함수 밖의 변수를 사용해야 한다 arr.find() // 만든 함수의 식이 트루이면 가장 '첫번째' 조건을 출력 arr.filter() // 배열의 요소 중에서 특정 조건을 만족하는 요소를 걸러내 새로운 배열을 만들어주는 메소드 arr.map() // 배열안에 들어있는 모든 요소들을 내가 전달해준 함수..
일급 객체(First-class citizen)와 고차함수(Higher-order function) 일급 객체(First-class citizen) 자바스크립트에는 특별한 대우를 받는 일급 객체가 있다. 대표적인 일급 객체 중 하나가 함수이다. 자바스크립트에서 함수는 아래와 같이 특별하게 취급된다. 변수에 할당(assignment) 할 수 있다. 다른 함수의 인자(argument)로 전달될 수 있다. 다른 함수의 결과로서 리턴될 수 있다. 함수를 변수에 할당할 수 있기 때문에, 함수를 배열의 요소나 객체의 속성값으로 저장할 수 있다. 이는 함수를 데이터(string, number, boolean, array, object)를 다루듯이 다룰 수 있다는 걸 의미한다. 1. 변수에 변수를 할당하는 경우 /* 아래는 변수 square에 함수를 할당하는 함수 표현식이다. * 자바스크립트에서 함수는 일급 객체이기..
함수 선언식과 함수 표현식의 차이 // 함수 선언식 function funcDeclared() { return 'this is a function declaration'; } // 함수 표현식 let funcExpressed = function() { return 'this is a function expression'; } 함수 선언식은 function으로 시작한다. 선언식이 let으로 선언해야될 것 같은데 그게 아니다. 반대라고 생각하면 헷갈리지 않을 것 같다. // 함수 선언식 function thisIsDeclared(a, b) { let sum = a + b return sum } // 함수 표현식 let thisIsExpression(word1, word2) { let addWords = word1 + word2 return ..
화살표 함수 사용법 익히기 함수 쓰기 const add = function (x,y) { return x + y } function 키워드를 생략하고 화살표 => 붙이기 const add = (x, y) => { return x + y } 한줄만 쓸 때는 리턴을 많이 생략해서 쓴다 const add = (x, y) => x + y 필요에 따라 소괄호를 붙인다 const add = (x, y) => (x + y) 파라미터가 하나인 경우 소괄호도 생략할 수 있다 const divideBy10 = x => x / 10 화살표 함수를 이용해 클로저 표현하기 const adder = x => { return y => { return x + y } } const subtractor = x => y => { return x - y } 아직 t..

반응형