개발
자바스크립트 filter() 메소드 설명
filter() 메소드는 특정 함수를 통과하는 값을 새로운 배열로 만들어 줍니다. 이를 통해 배열 요소 중 특정한 기준을 만족하는 요소들을 포함하는 새로운 배열을 생성할 수 있습니다. const words = ['cool', 'happiness', 'voice', 'chocolate', 'sleepy'] const result = words.filter(word => word.length > 6); console.log(result); // [happiness, chocolate] 다음은 MDN에서 제공하는 filter() 메소드 사용 예시입니다. 1. 10보다 큰 숫자 찾기 function isBig(value) { return value >= 10 } let filtered = [12, 5, 1, 1..
자바스크립트 즉시 실행 함수(IIFE)란?
즉시 실행 함수(Immediately Invoked Function Expression)은 선언과 동시에 실행되는 함수입니다. (function () { statements })(); 즉시 실행 함수는 자가 실행 익명 함수(Self-Excuting Anynomous Function)로 알려진 설계 패턴이며, 다음과 가이 크게 두 부분으로 구성됩니다. 첫 번째는 함수를 감싸는 그룹핑 연산자 () 안에 갇히는 렉시컬 스코프를 갖는 익명 함수입니다. 이는 즉시 실행 함수 내 함수에 접근을 막고, 글로벌 스코프를 오염시키지 않도록 합니다. (function () { var aName = "Barry"; })(); aName // "Uncaught ReferenceError: aName is not defined..
HTML에 자바스크립트를 연결하는 세 가지 방법 ✔️
HTML 문서에서 다음 세 가지 방법으로 자바스크립트 코드를 연결할 수 있습니다. 1. script 태그 내에 직접 작성 이때, HTML 4.x 버전의 경우 아래와 같이 그러나 HTML 5의 경우에는 자바스크립트가 기본 언어로 지정되어 있기 때문에 이러한 속성을 부여해 주지 않아도 됩니다. 2. 외부 파일 추가 HTML 파일 내에 직접 코드를 작성하지 않고 싶다면, 다음과 같이 별도의 외부 파일로 자바스크립트를 삽입할 수 있습니다. 이처럼 외부 파일을 통해 자바스크립트를 추가할 경우, HTML과 코드가 분리되어 관리가 용이하며, 내부에 직접 자바스크립트를 추가하는 것보다 페이지 로딩 속도가 빨라질 수 있습니다. 참고 자료 w3schools - JavaScript Where To Tutorial Teach..
자바스크립트 동기/비동기 차이점은 무엇일까요?
자바스크립트는 싱글 스레드(single thread) 방식으로 코드를 처리합니다. 스레드란 프로그램이 작업을 완료하는 데 사용하는 하나의 선로 같은 것인데, 각 스레드는 한 번에 하나의 작업만 순차적으로 수행할 수 있습니다. 즉, 하나의 작업이 완료되어야 다음 작업을 실행할 수 있는 구조인 것입니다. 이는 보통 오늘날의 컴퓨터가 멀티 스레드(multi thread)로 동시에 여러 작업을 처리하는 것과 다릅니다. 동기적 자바스크립트 앞서 언급한 것처럼 자바스크립트는 싱글 스레드를 사용하기 때문에, 기본적으로 동기적으로 코드를 처리합니다. const name = "Hwi" const age = "31" const nationality = "South Korea" console.log(name); // -> ..
자바스크립트 sort() 메소드 사용 방법 정리
자바스크립트의 sort() 메소드는 특정 배열을 정렬하고, 정렬된 배열을 리턴합니다. 기본 정렬은 오름차순이며, 요소를 문자열로 전환한 다음 UTF-16 코드 단위 값을 따라 이를 비교합니다. 배열 정렬 먼저, 문자가 담겨 있는 배열을 정렬해보도록 하겠습니다. const fruits = ["pineapple", "cherry", "apple"]; fruits.sort(); console.log(fruits); // Array ["apple", "cherry", "pineapple"] 다음으로 숫자가 담겨 있는 배열을 정렬해 보도록 하겠습니다. const numbers = [1, 30, 4, 21, 10000]; numbers.sort(); console.log(numbers); // Array [1, 1..
자바스크립트 문자열로 함수를 실행하는 방법
함수의 이름을 변수의 문자열로 저장하고, 이 문자열을 사용해 함수를 호출할 수 있습니다. 문자열로 과연, 함수를 어떻게 실행할 수 있을까요? 몇 가지 방법이 있습니다. 이 글은 How to execute a Javascript function when its name as a string 및 How to execute a JavaScript function when I have its name as a string의 예시 및 답변을 인용 및 정리한 글입니다. eval() eval을 사용하는 방법으로 간단하지만, 정말로 꼭 사용해야 하는 경우가 아니라면 사용하지 않는 것이 좋습니다. function fnLogin(userName, password) { console.log("User: " + userNam..
자바스크립트 메모이제이션 설명
메모이제이션이란? 메모이제이션은 함수의 호출 결과를 캐싱하여, 동일한 아규먼트로 함수가 재호출될 때 저장해두었던 값을 리턴하는 방식입니다. 이는 자바스크립트 뿐만이 아닌, 여러 프로그램 언어에서도 흔하게 사용됩니다. 메모이제이션은 특별히 재귀 함수에서 유용하게 사용될 수 있습니다. function factorial(num) { if(num === 1) { return 1; } return num * factorial(num - 1); } factorial(3) factorial(3)을 통해 factorial(3), factorial(2), factorial(1)이 실행됩니다. 메모이제이션을 활용하면, 다음 번에 factorial(3) 실행 시 재귀 함수를 반복하지 않아도 됩니다. 또한 factorial(..
자바스크립트 arguments를 사용한 가변 인자 함수 활용
자바스크립트의 aruments는 유사 배열 객체를 생성하는 내부 함수입니다. 이는 함수 호출 시, 함수에 선언된 매개 변수보다 더 많은 인자를 전달하는 경우 등에 활용할 수 있습니다. 유사 배열(Array-like)이란 arguments가 길이 속성과 프로퍼티를 갖고 있지만, 배열에서 사용할 수 있는 내장 메소드인 forEach(), map() 등을 사용할 수 없는 객체를 의미합니다. 먼저, arguments의 작동 방식을 이해해 보도록하겠습니다. 아래의 경우처럼, 각 함수에 할당한 인자가 arugments에 유사 배열 형태로 할당됩니다. function func1(a, b, c) { console.log(arguments[0]); // 1 console.log(arguments[1]); // 2 con..