컴퓨터 연산에서 NaN은 연산 과정에서 잘못된 입력을 받았음을 나타내는 기호이다. 특히 부동소수점 연산에서 사용한다. 예를 들면 음수의 제곱근을 구하려고 하거나, 0으로 나누려고 했을 때 발생한다. 숫자인지 아닌지를 판별하는 방법은 여러가지가 있는데 형변환 없는 엄격한
Javascript는 매우 유연한 언어이기 때문에 자바스크립트 엔진이 필요에 따라 '암시적 형변환'을 할 수 있지만 코드의 의도를 좀 더 명확하게 하기 위해 의도에 따른 '명시적 형변환'을 사용할 필요가 있다. 따라서 암묵적 형변환을 사용할 경우가 있다면 Wrapper
동등 연산자를 사용할 경우 좌,우항의 형변환(type casting)이 일어난다. 따라서 정확한 타입 연산을 하기 위해서는 엄격한 동등 연산자(===)를 사용해야 한다.엄격한 동등 연산자(===)는 type casting이 일어나지 않은 상태에서 좌, 우항의 값과 ty
Javascript의 타입은 크게 원시 타입(Primitive type)과 참조 타입(Reference type)으로 분류할 수 있는데 최초에 타입을 구분하더라도 runtime 환경에서 동적으로 타입이 변경될 수 있는 언어이기 때문에 타입을 구분하여 다루는 것이 매우
전역 공간은 코드가 실행되는 최상위 환경을 말하며 브라우저인지 node.js인지에 따라 이 환경으로 어디서든 접근이 가능하기 때문에 이 전역 공간을 더럽히게 되면 예상치 못한 버그가 발생하기 쉽다.browser(window)node.js(global)오류1: 파일로 코
1) 단축 속성명(shorthand property name): 새로 만들려는 객체의 속성값 일부가 이미 변수로 존재하면 간단하게 변수 이름만으로 객체의 속성을 생성할 수 있다. 또한 단축 속성명은 콘솔 로그를 출력할 때 유리하다.2) 계산된 속성명(computed p
☑️ 변수를 정의하는 새로운 방법 1) var var는 함수 스코프를 가지는데 함수가 아닌 프로그램 바깥에 정의하면 전역 변수가 되기도 한다. 이러한 특성때문에 var는 블록 스코프 안에서 정의되었을 때 해당 코드가 다 실행된 이후에도 변수가 사라지지 않고 계속
🌼 18.1 일급 객체 다음과 같은 조건을 만족하는 객체를 일급 객체라 한다. 함수가 일급 객체라는 것은 함수를 객체와 동일하게 사용할 수 있다는 의미다. 객체는 값이므로 함수는 값과 동일하게 취급할 수 있다. 일급 객체로서 함수가 가지는 가장 큰 특징은 일반 객
내부 슬롯과 내부 메서드는 자바스크립트 엔진이 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티와 의사 메서드다. ECMAScript 사양에 등장하는 이중 대괄호로 감싼 이름들이 내부 슬롯과 내부 메서드다.내부 슬롯과 내부 메서드는
🌼 11 원시 값과 객체의 비교 원시 타입: 원시 값은 변경 불가능한 값이다. 원시 값을 변수에 할당하면 변수에는 실제 값이 저장되며 원시 값을 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달된다.(Pass by value) 변수와 값은 분리해서 생각해야한다
🌼 13.1 Scope란? 스코프(유호범위)는 자바스크립트를 포함한 모든 프로그래밍 언어의 기본적이며 중요한 개념이다. 변수는 자신이 선언된 위치에 의해 자신이 유호한 범위. 즉, 다른 코드가 변수 자신을 참조할 수 있는 범위가 결정된다. 다시 말해, 모든 식별자
🌼 37.1 Set Set 객체는 중복되지 않는 유일한 값들의 집합니다. Set 객체는 배열과 유사하지만 다음과 같은 차이가 있다. 이러한 Set 객체의 특성은 수학적 집합의 특성과 일치한다. Set은 수학적 집합을 구현하기 위한 자료구조다. 따라서 Set을 통
🌼33. Symbol? 심벌(Symbol)은 ES6에서 도입된 7번째 데이터 타입으로 변경 불가능한 원시 타입의 값이다. 심벌 값은 다른 값과 중복되지 않는 유일무이한 값이다. 따라서 주로 이름의 충돌 위험이 없는 유일한 프로퍼티 키를 만들기 위해 사용한다. 이
표준 빌트인 객체인 String 객체는 생성자 함수 객체다. new 연산자와 함께 호출하여 String 인스턴스를 생성할 수 있다. String 래퍼 객체는 배열과 마찬가지로 length 프로퍼티와 인덱스를 나타내는 숫자 형식의 문자열을 프로퍼티 키로, 각 문자를 프
표준 빌트인 객체인 Date는 날짜와 시간을 위한 메서드를 제공하는 빌트인 객체이면서 생성자 함수다. 시간을 표기하는 방법으로는 UTC와 GMT가 있는데 둘은 초의 소수점 단위에서만 차이가 나기떄문에 일상에서는 혼용되어 사용된다. 기술적인 표기에서는 UTC가 사용된
🌼27. 배열 자바스크립트에서 배열은 여러 개의 값을 순차적으로 나열한 자료구조로 엄밀히 말에 자료구조에서 통용되는 일반적인 의미의 배열이 아니다. 자바스크립트의 배열은 일반적인 배열의 동작을 흉내 낸 특수한 객체다. 🌼27.2 자바스크립트 배열은 배열이 아니
Pseudo는 "가짜의", "모조의"라는 뜻을 가진 단어로 Pseudo class, element는 단어 뜻 그대로 실제로는 없는 클래스, 실제로는 없는 가상의 선택자를 의미한다. 가상 클래스는 실제로 존재하는 태그 중 특정 상태에 있는 요소를 선택할 때 사용하는
CSS 전처리기는 전처리기 자신만의 특별한 syntax를 가지고 CSS를 생성하도록 하는 프로그램이다. 대부분의 전처리기는 pure CSS에 존재하지 않는 특징을 갖고 있다. mixin, nesting selector, inheritance selector 등등. 이러
Medium의 Learning Flutter’s new navigation and routing system이라는 글을 일부 번역하여 정리한 글입니다. 상세한 구현 로직 및 사용방법은 원문 글에 자세히 나와있습니다. Navigator 2.0은 플러터 서비스가 브라우저
자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다. 클래스 기반 객체지향 프로그래밍 언어의 특징인 몇 몇 키워드 등이 없어 자바스크립트는 객체지향 언어가 아니라고 오해하는 경우도 있지만 자바스크립트는 클래