[ 모던 자바스크립트 스터디 ] 단축 평가
·
Archive/Develop
논리 연산자를 이용한 단축 평가 논리 연산자 중 논리합과 논리곱 연산자 표현식의 평가 결과는 boolean 타입이 아닐수도 있다. 이걸 true 냐 false 냐를 구분짓는 연산이 아닌 2개의 피연산자 중 어느 한 쪽을 골라 평가한다는 뉘앙스로 봐야한다. 아래 예시를 보자. 논리곱 연산을 행했는데, 결과 값이 boolean 타입이 아닌 2번째 피연산자인 "치킨" 이 나온 것을 확인할 수 있다. 논리곱(&&)연산자는 두 개의 피연산자가 모두 true 일 때 true 를 반환하는 연산자 임을 기억하고 차근차근 풀어나가보자. 첫번째 피연산자인 "라면" 은 Truthy 값으로 true 로 평가된다. 아직 논리곱 연산은 끝나지 않았다. 첫번째 피연산자가 true 인 것을 확인했으니 두번째 피연산자가 true 냐,..
[ 모던 자바스크립트 스터디 ] 암묵적 타입 변환 & 명시적 타입 변환
·
Archive/Develop
지난 포스팅에서 다뤘던 암묵적 타입 변환이 행해지는 문자열, 숫자, 불리언 타입을 자세하게 하지 못했던 것 같아서 다시 포스팅해보려고 한다. 문자열 타입 변환 + 연산자는 피연산자 중 하나 이상이 문자열이라면 문자열 연결 연산자로 동작한다. 따라서 아래 코드는 문자열 '22' 를 반환한다. 2 + '2' 자바스크립트 엔진은 문자열 연결 연산자 표현식을 평가하기 위해 숫자타입 2 를 암묵적으로 문자열으로 변환 시키는 것이다. 아래는 헷갈릴 수 있는 암묵적 문자열 타입변환 케이스이다. true + '' // "true" false + '' // "false" null + '' // "null" undefined + '' // "undefined" (Symbol()) + '' // TypeError: Cann..
[ 모던 자바스크립트 스터디 ] 레이블 문 , 타입 변환과 단축 평가
·
Archive/Develop
자바스크립트 책을 읽으며 생소한 개념이 있어 정리해보려고 한다. 레이블 문 (label statement) a: console.log('a'); 위의 코드는 a 라는 레이블 식별자가 붙은 레이블 문이다. 이 레이블 문은 프로그램의 실행 순서를 제어하는데 사용하고, 이 레이블 문을 탈출하려면 break 문에 레이블 식별자를 지정해주면 된다. a : { console.log(1); break a; console.log(2); } console.log('Done! ^~^'); 위 코드의 실행 결과는 아래와 같다. console.log(1); 이 실행 된 이후 break a; 문을 통해 a 레이블을 탈출하게 되어 아래의 console.log(2); 는 실행되지 않는 것을 확인할 수 있다. 이러한 레이블 문은 중..
[ 모던 자바스크립트 스터디 ] 자바스크립트 개요, 변수 호이스팅
·
Archive/Develop
해당 포스팅은 모던 자바스크립트 딥 다이브 책을 읽으며 기록하는 포스팅입니다. 제 식대로 조금 편안하게 해석하여 기록합니다. 자바스크립트 특징 다른 프로그래밍 언어와 마찬가지로 기존에 존재하는 많은 프로그래밍 언어에서 영향을 받았다. 기본적인 문법은 C와 JAVA를 마킹했고, self 는 프로토타입 기반 상속, scheme 은 일급 함수의 개념을 차용했다. 또한 자바스크립트는 개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어이다. 파이썬과 마찬가지인 것이다. 물론, 자바스크립트에서 파생된 타입스크립트 등의 언어는 해당 언어를 자바스크립트로 변환해주는 일종의 컴파일 작업을 거친다. 그렇지만 자바스크립트 자체는 컴파일 작업을 하지 않음을 기억하고 있어야한다. 이건 이론적으로 알고 있는 내용이지만,..