본문 바로가기

분류 전체보기77

JavaScript - Function, Block, Lexical Scope Scope(스코프) 스코프는 '범위'라는 뜻을 가지고 있다. 자바스크립트에서 스코프란 변수에 접근할 수 있는 범위라 볼 수 있다. 자바스크립트에서 스코프는 2가지 타입이 존재한다. global Scope(전역 스코프) local Scope(지역 스코프) global Scope(전역 스코프) 전역 스코프는 전역에 선언되어 있어 어느 곳에서든 해당 변수에 접근할 수 있다는 의미이다. 즉, 변수가 모든 함수에 속하지 않고 {} 안에도 들어있지 않다면 이 변수는 전역 변수라 한다. 전역 변수를 선언하면, 함수 내부 또는 자바스크립트 코드 어디에서든 쓸 수 있다. let test = "Hello world" function a () { console.log(test); } console.log(test); // .. 2020. 9. 15.
JavaScript - == vs === vs Typeof == vs === === 자바스크립트에서 === 연산은 엄격한 동등성을 비교할 때 사용한다. 여기서 엄격한 동등성이란 타입과 값이 둘 다 같음을 의미한다. true를 만족하는 몇 가지 예를 들면 다음과 같다. 3 === 3 // 타입과 값이 같음 true 'abcd' === 'abcd' // 타입과 값이 같음 true true === true // 타입과 값이 같음 true false를 만족하는 몇 가지 예를 들어보면 다음과 같다. 33 === "33" // 숫자타입과 문자열타입 false "aaa" === "bbb" // 타입은 같지만 값이 다름 false false === 0 // 타입과 값 둘 다 다름 false ===은 타입과 값 모두 같아야 true를 반환한다. == 자바스크립트에서 == 연산자.. 2020. 9. 14.
JavaScript - Type Coercion(형 변환) 자바스크립트는 예상치 못한 타입을 받았을 때, 예상 가능한 타입으로 바꿔준다. 그로 인해 사용자는 숫자 값을 넘겨야 하는 곳에 문자열을 넣을 수도 있고 문자열을 넣아야 하는 곳에 객체를 넘길 수도 있다. 이런 일이 발생했을 때 자바스크립트 엔진은 사용자가 잘못 넣은 타입을 올바른 타입으로 변환하려고 시도한다. 형 변환은 자바스크립트의 주요한 기능이지만 피해야 할 기능이기도 하다. 1 + "1" + 1 // 111 2 * "2" // 4 true + true // 2 1 + false // 1 2 - true // 1 const a = { valueOf: () => 5 } 1 + a // 6 2 * a // 10 const b = { toString: () => " test: " } b + 1 // " t.. 2020. 9. 8.
JavaScript - 값 타입(Value Type)과 참조 타입(Reference Type) 자바스크립트는 값에 의한 전달(passed by value)이 일어나는 원시 타입(Primitive Types)과 참조에 의한 전달(passed by reference)이 일어나는 데이터 타입이 있다. 데이터 타입은 객체(Object)로 볼 수 있다. 원시 타입(Primitives) 원시 타입이 변수에 할당된다면, 그 변수를 원시 타입을 가진 변수라 생각할 수 있다. let a = 1; let b = 'bb'; let c = null; 이런 경우 a는 1이란 값을 가지고 있고, b는 'bb'라는 값을 가지고 있다. 이걸 메모리 상에 존재하는 변수들을 다음과 같이 표로 나타낼 수 있다. Variables Values a 1 b 'bb' c null 이 변수들을 다른 변수에 =를 이용해 할당할 때, 새로운 .. 2020. 9. 7.