자바스크립트 8

자바스크립트 옵셔널 체이닝 연산자

옵셔널 체이닝 연산자 옵셔널 체이닝 연산자 ?. 는 좌항 피연산자가 false로 평가되는 값이라도 null 또는 undefined가 아니면 우항의 프로퍼티 참조를 이어간다 즉 좌항이 null 또는 undefined만 아니면 우항값을 쓸거임. 이런 뜻 var elem = null; // elem이 null 또는 undefined면 undefiend를 반환하고 // 그렇지 않으면 우항의 프로퍼티 참조를 이어간다. var value = elem?.value; console.log(value); // undefined 옵셔널 체이닝 연산자는 변수가 null 인지 undefined가 아닌지 확인하고 프로퍼티를 참조할 때 유용하다. 하지만 좌항 피연산자가 false로 평가되는 Falsy 값(false, undefi..

자바스크립트 2021.09.23

자바스크립트 타입 변환과 단축 평가

원시 값은 변경 불가능한 값이다. 타입 변환 타입 변환이란 기존 원시값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것이다. ( a라는 변수에 선언된 값을 가지고 다른 타입의 같은 값을 생성 ) 암묵적 타입 변환 암묵적 타입 변환은 기존 변수값을 변경하는 게 아니라 자바스크립트 엔진이 에러 없이 평가하기 위해 피연산자의 값을 암묵적으로 변환해 새로운 타입의 값을 만들어 단 한 번 사용하고 버린다. 개발자는 암묵적 타입변환이 발생하는지, 발생하면 어떤 타입으로 바뀌는지 등등 예측 가능해야 오류를 범할 가능성이 낮아진다. 중요한 건코드를 예측할 수 있어야 한다는 것이다 단축 평가 단축 평가 : 평가 도중 평가 결과가 확정되면 나머지 평가 과정을 생략하는 것을 말함 논리 연산자를 사용한 단축 평가 논리곱(..

자바스크립트 2021.09.23

자바스크립트 연산자 (2) 삼항 조건 연산자, 논리 부정 연산자, 지수 연산자

삼항 조건 연산자 삼항 조건 연산자는 조건식의 결과에 따라 반환할 값이 결정된다. 예시) var result = score >= 60 ? ‘pass’ : ‘fail’; score >= 60 연산의 결과가 참이면 pass를 거짓이라면 fail을 result 변수에 담는다 평가 결과가 불리언 값이 아니면 암묵적 타입 변환된다. 이때 조건식이 참이면 콜론(:)앞의 두 번째 연산자가 평가되어 반환되고 ( pass ) 거짓이면 콜론(:) 뒤의 세번째 피연산자가 평가되어 반환된다 ( fail ) 삼항 조건 연산자 표현식과 if … else 문은 차이가 있다. 바로 삼항 조건 현산자 표현식은 값처럼 사용 가능하지만 if … else 문은 값처럼 사용할 수 없다. 삼항 조건 연산자 표현식은 값으로 평가할 수 있는 표현..

자바스크립트 2021.09.23

자바스크립트 연산자 (1)

연산의 대상을 피연산자라 한다. 피연산자는 값으로 평가될 수 있는 표현식이어야 한다. 즉 값이 있는 변수이거나, 함수여도 리턴 값이 있는 함수여야 함 + 연산자 문자열 ‘1’ 앞에다가 + 하면 숫자 타입으로 변환하여 반환한다. ( 문자열을 숫자로 변환할 수 없을 땐 NaN을 반환 ) 이때 피연산자를 변경하는 것은 아니고 숫자 타입으로 변환한 값을 생성해서 반환한다 1 + true를 연산하면 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환돼서 true를 숫자 타입인 1로 강제 변환시킨 후 계산한다. 이를 암묵적 타입 변환 or 타입 강제 변환이라고 한다. 동등 비교(==) 연산자와 일치 비교(===) 연산자 동등 비교(==) 연산자는 비교할 때 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지..

자바스크립트 2021.09.23

자바스크립트 변수 사용시 주의사항

Js 변수 사용 시 주의 사항 1. 변수는 꼭 필요한 경우에만 제한적으로 사용하기 2. 변수의 유효 범위는 최대한 좁게 만들기 3. 전역 변수는 최대한 사용금지 4. 변수보다는 상수를 사용하기 5. 변수이름은 목적이나 의미 파악이 쉽게 네이밍하기 가독성이 좋은 코드가 좋은 코드다 컴퓨터가 이해하는 코드는 어느 바보나 짤 수 있다. 좋은 프로그래머는 사람이 이해하는 코드를 짠다. 마틴 파울러 출처 모던 자바스크립트 Deep Dive

자바스크립트 2021.09.11

자바스크립트 동적 타이핑, 동적언어 단점

자바 같은 정적 언어는 명시적 타입 선언을 해야 하고, 변수 타입 변경 불가, 컴파일 시점에 타입 체크를 한다. 자바스크립트같은 동적 언어는 (동적 타이핑) 변수 선언시 타입 선언을 하지 않는다. (어떠한 데이터 타입의 값이라도 할당 가능) 즉 자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정됨 재할당에 의해 변수타입은 언제든 바뀔 수 있음 (변수는 값에 묶여있는 값에 대한 별명이기 때문에) 이러한 특징을 동적 타이핑이라 한다 동적 언어의 단점 1. 복잡한 프로그램에서는 변수 값을 추적하기 어려울 수 있다 2. 값을 확인하기 전에는 타입을 확신할 수 없다 3. 자바스크립트 엔진에 의해 암묵적으로 타입이 자동으로 변환되기도 한다 4. 이때문에 변수 사용하기 전에 데이터 타입을 체크해야 하는 경우가..

자바스크립트 2021.09.09

자바스크립트 데이터 타입의 필요성

1. 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해서 값의 데이터 타입에 따라 확보해야 할 메모리 공간의 크기가 결정되기 때문에 2. 값을 참조할때 한 번에 읽어야 할 메모리 공간의 크기를 결정하기 위해 값을 참조할때 메모리 셀의 개수(바이트 수)를 알아야 하는데 이때 데이터 타입이 필요 3. 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해 모든 값은 2진수로 저장되는데 이때 데이터 타입에 따라 65가 될수도 ‘A’가 될수도 있기 때문에 출처 모던 자바스크립트 Deep Dive

자바스크립트 2021.09.09

자바스크립트 데이터 타입에 대하여

숫자 타입 1과 문자열 ’1’은 생성한 목적과 용도가 다르다. 숫자는 연산, 문자열은 출력 확보해야할 메모리 공간과 메모리에 저장되는 2진수도 다르다 결론 목적과 용도에 맞게 구분해서 사용하기 JS 숫자 타입 자바스크립트는 하나의 숫자 타입만 존재 모든 수를 실수로 처리한다 그래서 1 == 1.0 은 true다 정수만을 위한 데이터 타입은 없다 즉 변수에다 2,8,16 진수 값을 넣으면 모두 10진수로 해석된다. 따옴표 사용 이유 문자열을 따옴표로 감싸는 이유는 키워드나 식별자 같은 토큰과 구분하기 위해서 감싸지 않으면 자바스크립트 엔진은 키워드나 식별자 같은 토큰으로 인식한다. 자바스크립트의 문자열은 원시 타입이며, 변경 불가능한 값이다. 즉 한번 선언되고나서 값을 바꾸면 새로운 메모리에 할당됨 출처 ..

자바스크립트 2021.09.09