본문 바로가기

Javascript39

JavaScript - Expression vs Statement(표현식과 문장) 자바스크립트에서는 대표적인 2가지 문법적 카테고리가 있다. Expression Statement 표현식(Expression)은 문장(Statement)처럼 동작할 수 있지만 문장(Statement)은 표현식(Expression)처럼 동작할 수 없다. Expression(표현식) 표현식은 값을 산출해내는 코드를 의미한다. 값이 도출되기 때문에 함수의 인자로 들어갈 수 있다. 1; 5 + 5; 'Hello world'; exFunc('a','b'); exam; 표현식은 자바스크립트 코드 중 값이 들어가는 곳이면 어디든 넣을 수 있다. 그래서 console.log의 인자는 콘솔이 로깅될 때 하나의 값으로 변한다. console.log(true && 1 * 5) // 5 표현식은 상태(State)를 바꿀 필요는.. 2020. 9. 16.
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.