객체를 만드는 두 가지 방법객체 리터럴을 이용한 방법생성자 함수를 이용하는 방법 생성자 함수란, new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수를 말한다.생성자 함수를 사용하는 이유는 객체를 재사용하기 위함이다.관례상 함수 이름의 첫 글자는 대문자로 시작
객체는 논리 평가 시 true를 반환한다. 따라서 객체는 숫자형이나 문자형으로만 형 변환이 일어난다.숫자형으로의 형 변환은 객체끼리 빼는 연산을 할 때나 수학 관련 함수를 적용할 때 일어난다.문자형으로의 형 변환은 대개 console.log(obj)같이 객체를 출력하려
'심볼(symbol)'은 객체속성을 만들 수 있는 원시 데이터 형식(primitive data type)이다.유일한 식별자(unique identifier)를 만들고 싶을 때 사용한다. Symbol()을 사용하면 심볼값을 만들 수 있다.Symbol()은 함수이지만, 생
\*\* 스펙에 추가된 지 얼마 안 된 문법입니다. 구식 브라우저는 폴리필(특정 기능이 지원되지 않는 브라우저를 위해 사용할 수 있는 코드조각이나 플러그인)이 필요합니다. 몇 가지 사례를 통해 왜 옵셔널 체이닝이 등장했는지 알아보자.사용자가 여러 명 있는데 그 중 몇
원시값의 메서드 자바스크립트는 원시값을 마치 객체처럼 다룰 수 있게 해준다. 하지만, 원시값은 객체가 아니라는 것을 기억하자. 원시값과 객체의 차이점 원시값 : 원시형 값이다. 추가 데이터를 저장할 수 없다. 원시형 종류는 문자(string), 숫자(number)
객체는 순서를 고려하지 않고 만든 자료구조이기 때문에 객체를 이용하면 새로운 프로퍼티를 기존 프로퍼티 ‘사이에’ 끼워 넣는 것도 불가능하다. 때문에, 순서가 있는 컬렉션이 필요한데 이럴 때 배열을 사용할 수 있다.배열(array)은 같은 타입의 변수들로 이루어진 유한
push, pop, shift, unshift 외에 요소 추가와 제거에 관련된 메서드를 알아보자.1\. splice2\. slice3\. concat배열에서 요소 하나만 지우고 싶을 때 사용arr.splice(start)는 요소를 자유자재로 다룰 수 있게 해준다. 이
배열을 변형시키거나 요소를 재정렬해주는 메서드에 대해 알아보자.1\. map2\. sort3\. reverse4\. split과 join5\. reduce와 reduceRight유용성과 사용빈도가 아주 높은 메서드 중 하나이다.map은 배열 요소 전체를 대상으로 함수를
반복 가능한(iterable, 이터러블) 객체는 배열을 일반화한 객체이다. 이터러블 이라는 개념을 사용하면 어떤 객체에든 for..of 반복문을 적용할 수 있다. 반복 가능한 객체를 다른 객체와 구분짓는 특징은, 객체의 Symbol.iterator 속성에 특정 형태의
객체 - 키가 있는 컬렉션을 저장함배열 - 순서가 있는 컬렉션을 저장함맵 - 키가 있는 값이 저장된 컬렉션셋 - 중복이 없는 값을 저장할 때 쓰이는 컬렉션맵(Map)은 키가 있는 데이터를 저장한다. 객체와 유사하지만 키 값에 넣을 수 있는 자료형에 제약이 없다.new
자료구조를 구성하는 요소도 자신이 속한 자료구조가 메모리에 남아있는 동안 도달 가능한 값으로 취급되어 메모리에서 삭제되지 않는다. 객체의 프로퍼티나 배열의 요소, 맵이나 셋을 구성하는 요소들이 이에 해당한다. 위크맵은 맵과 유사한 컬렉션이지만, 차이점이 존재한다. 맵과
keys(), values(), entries()를 사용할 수 있는 자료구조는 다음과 같다.MapSetArray일반 객체에도 순회 관련 메서드가 있긴 한데, keys(), values(), entries()와는 문법에 차이가 있다. 일반 객체엔 다음과 같은 메서드를 사
내장 객체 Date는 날짜를 저장할 수 있고, 날짜와 관련된 메서드도 제공해준다.Date 객체를 활용하면 생성 및 수정 시간을 저장하거나 시간을 측정할 수 있고, 현재 날짜를 출력하는 용도 등으로 활용할 수 있다. new Date()를 호출하면 새로운 Date 객체가
복잡한 객체를 다룰 때, 객체를 보내거나 출력하는 상황에서 객체는 문자열로 전환되어야 한다. 이러한 상황을 유연하게 대처하기 위해 json이 등장했다.JSON(Javascript Object Notation)은 값이나 객체를 나타내주는 범용 포맷이다. 본래 자바스크립트
키를 가진 데이터 여러 개를 하나의 엔티티에 저장할 땐 객체, 컬렉션에 데이터를 순서대로 저장할 땐 배열을 사용한다.함수에 객체나 배열을 전달해야 하는 경우가 생기는데 객체나 배열이 저장된 데이터 전체가 아닌 일부만 필요할 경우가 생긴다. 이 때 객체나 배열을 변수로
함수가 자기 자신을 호출하는 것.동일하면서 간단한 작업 여러 개로 나눌 수 있을 때 유용한 프로그래밍 패턴목표 작업을 간단한 동작 하나와 목표 작업을 변형한 작업으로 단순화시킬 수 있을 때 사용특정 자료구조를 다뤄야 할 때 사용두 가지 사고방식x를 n 제곱해주는 함수
함수 정의 방법과 상관없이 함수에 넘겨주는 인수의 개수엔 제약이 없다.함수를 정의할 땐 인수를 두 개만 받도록 하고, 실제 함수를 호출할 땐 이보다 더 많은 ‘여분의’ 인수를 전달했지만, 에러가 발생하지 않는다. 다만 반환 값은 처음 두 개의 인수만을 사용해 계산된다.
전역 객체를 사용하면 어디서나 사용 가능한 변수나 함수를 만들 수 있다.브라우저 환경에선 -> windowNode.js 환경에선 -> global 전역 객체 이름의 표준화 -> \`globalThis'전역 객체의 모든 프로퍼티는 아래와 같이 직접 접근할 수 있다. 권
💡 아래 글은 오래된 스크립트를 읽는 데 도움을 준다. 💡var로 선언한 변수의 스코프는 함수 스코프이거나 전역 스코프이다. 블록 기준으로 스코프가 생기지 않기 때문에 블록 밖에서 접근 가능하다.코드 블록이 함수 안에 있다면, var는 함수 레벨 변수가 된다.let
함수 표현식과 함수 선언문 이외에 함수를 만들 수 있는 방법이 하나 더 있다. new Function 문법을 사용하면 함수를 만들 수 있다.새로 만들어지는 함수는 인수 arg1...argN과 함수 본문 functionBody로 구성된다.인수 두 개가 있는 함수를 예로
자바스크립트에서 함수는 값으로 취급된다. 모든 값은 자료형을 가지고 있으며, 함수의 자료형은 객체이다. 함수는 호출이 가능한(callable) ‘행동 객체’ 이다. 우리는 함수를 호출할 수 있을 뿐만 아니라 객체처럼 함수에 프로퍼티를 추가·제거하거나 참조를 통해 전달할
setTimeout() 함수는 일정시간이 지난 후 인자로 받은 함수를 한번 실행해주는 메서드이다. 문법 : func | code실행하고자 하는 코드로, 함수 또는 문자열 형태이다. 대개는 이 자리에 함수가 들어간다. 하위 호환성을 위해 문자열도 받을 수 있게 해놓았지만
화살표 함수는 단순히 함수를 ‘짧게’ 쓰기 위한 용도가 아니다. 몇 가지 독특하고 유용한 기능을 제공한다.화살표 함수엔 this가 없다. 화살표 함수는 함수를 선언할 때 this에 바인딩할 객체가 정적으로 결정된다. 동적으로 결정되는 일반 함수와는 달리 화살표 함수의
JavaScript Object Notation의 약자이다.좀 더 쉽게 데이터를 교환하고 저장하기 위해 만들어진 텍스트 기반의 데이터 교환 표준이다.웹 어플리케이션에서 데이터를 전송할 때 일반적으로 사용한다. ( 서버에서 클라이언트로 데이터를 전송하여 표현하거나 반대의
문서 객체 모델은 XML이나 HTML 문서에 접근하기 위한 일종의 인터페이스이다. DOM은 문서의 구조화된 표현(structured representation)을 제공하며 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 그들이 문서 구조, 스타일, 내용
자바스크립트는 메인 쓰레드 하나와 콜스택 하나로 구성되어 있는 싱글 쓰레드로 동작하는 언어라고 한다.또한, 비동기 작업을 동시에 할 수 있다고도 한다.엥? 😳 1번에 1개의 작업만 할 수 있는데, 어떻게 동시에 실행을 할 수 있다는 걸까?오늘은 이 주제에 대해 알아보
동기(Synchrounous)와 비동기(Asynchronous) 1. 동기 동기 방식은 서버에서 요청을 보냈을 때 응답이 돌아와야 다음 동작을 수행할 수 있다. 즉, A 작업이 모두 진행될 때까지 B작업은 대기해야 한다. 2. 비동기 비동기 방식은 반대로 요청을
템플릿 리터럴은 내장된 표현식을 허용하는 문자열 리터럴이다.이는 이중 따옴표나 작은 따옴표 대신 백틱(\`\`) 과 ${}를 사용해서 문자열과 변수를 적절히 같이 사용 가능하다.위의 코드는 아래와 같이 작성할 수 있다.참고 > https://developer.
undefined은 변수를 선언하고 값을 할당하지 않은 상태,null은 변수를 선언하고 빈 값을 할당한 상태(빈 객체) 를 의미한다.undefined는 선언은 됐지만 아직 value가 할당되지 않은 경우 의미한다.ull은 ‘빈값’을 의미하는데 사용자가 준 value이다
우리는 위 코드 오타 프로래밍을 찾아서 프로그래밍으로 바꿔줘야 한다.그럼 지금부터 코드 분석하며 slice함수, indexOf함수를 이해해보고, 문자열 수정까지 해보도록 하자!우리는 info 에서 "프로래밍" 단어가 포함됐는지 알고 싶다.indexOf 메소드를 사용
문제 > 짝수인지 판별하는 함수 isEven을 작성 주세요.해결방법 > 함수 isEven 생성하고, 짝수인지 홀수인지 판별하는 조건문을 작성한다.문제 > calculateTotal 함수를 작성하세요.팁과 세금을 제외한 식사값이 주어졌을때, calculateTotal 함
Object.keys(obj).length === 0
내가 누른 아이의 인덱스를 찾고 싶을 때
javascript는 기존 선택을 가져오고, 전체 또는 부분적으로 모두 선택/선택 취소하고, 문서에서 선택한 부분을 제거하고, 태그로 감싸는 등의 작업을 수행할 수 있다. 선택한 기본 개념은 Range기본적으로 한 쌍의 "경계점"인 범위 시작과 범위 끝이다. 각 점은
노드 node HTML DOM은 노드라고 불리는 계층적 단위에 정보를 저장하고 있다. HTML DOM은 이러한 노드들을 정의하고, 그들 사이의 관계를 설명해주는 역할을 한다. HTML 문서의 정보는 노드 트리(node tree)라고 불리는 계층적 구조에 저장된다. 이러한 노드 트리는 노드들의 집합이며, 노드 간의 관계를 보여준다. DOM을 이용하여 노드 ...
return 함수 안에서 return 명령문을 만나면 함수의 실행은 그 지점에서 중단된다. 값을 제공한 경우 함수를 호출한 곳으로 돌아가서 그 값을 반환하여 계속 실행한다. break 현재 반복문, switch문, label문을 종료하고, 그 다음 문으로 프로그램 제어를 넘긴다. 여러번 반복되는 for, switch, while 등의 루프의 경우에 해당...
건강포지션의 value값들이 NaN이기 때문에 type이 ‘HealthPositionPoint’일 경우와 value 값들이 null, undefined이 아닐 경우 조건을 따져 if문 생성확인해주어야 하는 키들로 tmpArr 만들어준다Item.value들의 키들로 fo
01. 개요 자바스크립트가 어떻게 내부적으로 동작하고, 비동기 기반으로 작동하는지 또 원리는 무엇인지에 대해서 알아보려고 합니다. 자바스크립트가 어떠한 언어이고, 블로킹, 논 블로킹 중에 어떤 방식으로 프로그래밍을 실행하는지 알아볼까요? 02. 블로킹 / 논 블로킹
상황 펫 정보를 보여주는 페이지에서 강아지 생일을 단지 몇 살이 아니라 ~년 ~개월로 표기해야 해야 했다. 윤년, 윤달 계산이 복잡해서 빠르게 해결 가능한 라이브러리를 선택했고, moment.js를 활용해 날짜 차이를 계산하기로 했다. 해결 moment.js는 jav
한 객체 내에 특정한 key 값을 가졌는지 확인한 후, 값을 각각 다르게 세팅해주어야 했다. 객체에 특정 key가 존재하는지 확인하는 방법은 아래와 같다. 1. Object의 keys를 이용하기 Object.key는 객체의 키를 배열로 리턴한다. 이를 통해 찾는 값이 있는지 확인할 수 있다. 2. key in Object 이 방법은 Object의 프로...
arrow function function 키워드 대신 화살표(=>)를 사용하여 간략하게 함수를 정의함 함수 선언문으로 정의하지 않고, 함수 표현식으로 정의함 함수 몸체가 하나의 문으로 구성된다면 함수 몸체를 감싸는 중괄호 {} 생략 가능 함수 몸체가 하나의 문으로 구성된다 해도 함수 몸체의 문이 표현식이 아닌 문이라면 중괄호를 생략할 수 없음 객체 리터럴...
즉시 실행함수 Immediately Invoked Function Expression 정의되자마자 즉시 실행되는 함수를 말한다. 사용 이유는 다음과 같다. 필요없는 전역 변수의 생성을 줄일 수 있다. 즉시 실행함수는 선언하면 내부 변수가 전역으로 저장되지 않기 때문