본문 바로가기

전체 글

(1092)
클린코드 자바스크립트 - 타입 다루기(eqeq 줄이기) 본 내용은 Udemy의 클린코드 자바스크립트 강의를 토대로 작성하였습니다. 1. 동등 연산자(eqeq) 동등 연산자(Equality operator) == 형 변환이 일어남 type casting 동등 연산자를 지양해야 함 '1' == 1 // true 1 == true // true 2. 엄격한 동등 연산자(eqeqeq) 엄격한 동등 연산자(Strict equality) === 형 변환을 하지 않고 타입까지 비교 엄격한 동등 연산자 사용을 지향 동등 연산자의 형 변환을 활용하는 것이 아닌 명시적인 형 변환을 할 것 '1' === 1 // false 1 === true // false Reference [Udemy] 클린코드 자바스크립트 - Poco Jang
클린코드 자바스크립트 - 타입 다루기(undefined & null) 본 내용은 Udemy의 클린코드 자바스크립트 강의를 토대로 작성하였습니다. 1. undefined vs. null undefined: 정의하지 않은 것 null: 없다는 것을 명시적으로 표현 2. 타입변환에서의 차이 null, undefined는 암묵적 타입변환에서 혼란의 여지를 일으킬 수 있음 컨벤션을 갖추어 null, undefined로 인해 발생할 오류를 방지해야 함 // null !null // true !!null // false ​ null === false // false !null === true // true ​ typeof null // Object ​ // 산술연산자와 만나면 null은 0취급 null + 10 // 10 ​ // undefined // 선언했지만, 값은 할당하지 않음..
클린코드 자바스크립트 - 타입 다루기(타입 검사) 본 내용은 Udemy의 클린코드 자바스크립트 강의를 토대로 작성하였습니다. 1. typeof 연산자 우항의 피연산자의 타입을 문자열로 반환 Primitive 자료형을 분류하기 용이 Reference(array, function, Date) 자료형은 typeof로 분류하기 어려움 function, class는 function으로 return wrapper 객체는 object로 return null은 object로 return(언어적인 오류) JavaScript는 동적인 언어로 타입 또한 동적임 타입 검사가 어려움 상황에 맞는 타입 검사를 서치를하여 활용 2. instanceof 연산자 객체의 prototype chain을 검사 좌항의 인스턴스가 우항의 생성자 함수로부터 만들어진 것인지 boolean으로 r..
클린코드 자바스크립트 - 변수(호이스팅 주의하기) 본 내용은 Udemy의 클린코드 자바스크립트 강의를 토대로 작성하였습니다. 1. 호이스팅이란 런타임 시기에서 선언과 할당이 분리된 것 선언부만 최상단으로 끌어올려지는 것 var의 경우 초기화하가 제대로 되어 있지 않았을 때 undefined로 호이스팅 됨 런타임에 예측 불가능한 문제를 일으킬 수 있음 함수 또한 호이스팅 됨 var ex = 0; ​ function outer() { var ex; console.log(ex); // undefined ex = 10; function inner() { var ex = 20; console.log(ex); // 20 } inner(); ex = 1; console.log(ex); // 1 } ​ outer(); var ex; ​ console.log(typeo..
클린코드 자바스크립트 - 변수(임시변수 제거하기) 본 내용은 Udemy의 클린코드 자바스크립트 강의를 토대로 작성하였습니다. 1. 임시변수란 특정 공간 scope 안에서 전역 변수처럼 사용되는 변수 함수가 커졌을 때, 임시 변수를 작성하는 습관이 있다면 전역 변수처럼 문제를 일으킬 수 있음 예시 코드 function getElements() { // getElements 함수의 임시 객체 const elements = {}; // DOM API를 통해 Element들을 임시 객체에 넣음 elements.title = document.querySelector('.title'); elements.text = documents.querySelector('.text'); elements.value = documents.querySelector('.value')..
클린코드 자바스크립트 - 변수(전역 공간 사용 최소화) 본 내용은 Udemy의 클린코드 자바스크립트 강의를 토대로 작성하였습니다. 1. window vs. global 둘 다 최상위 공간을 의미(전역 공간) window: 브라우저에서의 전역 공간 web api 명세가 존재 setTimeout, setInterval, alert global: Node.js에서의 전역 공간 둘의 큰 차이는 없음 2. 전역 공간 오염 var로 선언한 변수는 window 객체 안에 할당 됨(전역 공간) 전역 공간에 선언된 경우, 다른 js 파일에서도 접근 가능 web api와 같은 식별자로 할당하는 경우, 덮어쓰기가 되어버림 전역 공간은 어디서나 접근이 됨 지역변수를 사용할 것 window, global에 접근하여 조작하지 말기 let & const 키워드를 사용하기 IIFE, m..
클린코드 자바스크립트 - 변수(function scope & block scope) 본 내용은 Udemy의 클린코드 자바스크립트 강의를 토대로 작성하였습니다. 1. function scope var 키워드는 함수 스코프를 가져, 전역 공간의 스코프가 오염될 가능성이 있음 var ex = '예시'; ​ if (ex === '예시') { var ex = '예시2'; console.log(ex); // 예시2 } ​ console.log(ex); // 예시2 2. block scope let, const는 블록 스코프를 가져, 전역 공간의 스코프가 오염되지 않음 let ex = '예시'; ​ if (ex === '예시') { let ex = '예시2'; console.log(ex); // 예시2 } ​ console.log(ex); // 예시 3. let보다는 const를 사용해야하는 이유 ..
클린코드 자바스크립트 - 변수(var) 본 내용은 Udemy의 클린코드 자바스크립트 강의를 토대로 작성하였습니다. 1. var를 지양하자 let & const: ES2015에서 등장 이전에는 var 예약어를 통해 변수를 선언 2. scope 변수가 유효한 범위 var: 함수 스코프 let & const : 블록 스코프 TDZ(Temporal Dead Zone)를 가짐 3. var의 문제점 동일한 변수명을 선언 가능 var ex = '예시1'; var ex = '예시2'; 호이스팅이 일어났을 때, undefined 할당 console.log(ex); // undefined ​ var ex = '예시'; 4. let & const를 사용해야하는 이유 let은 이미 선언한 변수명을 재차 선언하지 못함 const 또한 동일 let은 선언된 변수에대해..