자바스크립트는 세 종류의 논리 연산자가 있다
|| (or)
&& ( and)
! ( not)
@ | | (OR)
OR 연산자는 피연산자가 불린형이 아니라면 불린형으로 변환한다.
~자바스크립트의 || 추가기능~
OR 연산자와 피연산자가 여러개인 경우
왼쪽부터 시작해 평가를 진행하고 truthy 를 만나면 나머지 값은 건드리지 않고 평가를 멈춘다
true || alert("not printed"); // true 에서 평가가 멈춰 alert 가 실행되지 않는다
false || alert("printed");// alert 가 동작한다
@ && ( AND)
두 피연산자가 모두 참일 때 true 를 반환한
AND 연산자와 피연산자가 여러개인 경우
OR 연산자는 첫 번째 true를 반환하는 반면 AND 연산자는 첫 번째 false 를 반환한다
&& (AND)의 우선순위가 | | (OR) 보다 높다
@ ! (NOT)
NOT 연산자는 인수를 하나만 받고
1. 피연산자를 불린형으로 변환한다
2. 1에서 변환된 값의 역을 반환한다
순으로 작동한다
NOT을 두 개 연달아 사용하면 불린형으로 값이 변환된다
(내장 함수 Boolean 과 같은 결과)
NOT 의 운선순위는 모든 논리 연산자 중에서 가장 높아 가장 먼저 실행된
자바스크립트는 자료의 타입은 있지만 변수에 저장되는 타입은 언제든지 바꿀 수 있다. 이를 "동적 타입 언어"라고 한다
@숫자형
자바스크립트는 수학 연산에 있어 안전하다
치명적인 에러를 내뿜지 않고 NaN로 연산이 종료된다
또한 무한대(Infinity)의 값도 가질 수 있습니다
@Biglnt
(253-1)(9007199254740991) 보다 크거나
-(253-1)(9007199254740991) 보다 작은 값은 숫자형을 사용해 나타낼 수 없다.
필요할 경우 Bigint 를 통해 표현할 수 있다
@문자형
문자형은 따옴표로 묶는다
1. 큰따옴표
2. 작은따옴표
3. 역따옴표
가 존재한다
큰따옴표와 작은 따옴표는 기본적인 따옴표이지만
역 따옴표는 ${...} 안에 넣어 문자열 중간에 넣어 표현할 수 있다
@불린형
true or false 두 가지 값 밖에 없는 자료형이다
@null
어느 자료형에도 속하지 않고 null 값 만을 포함하는 자료형을 만든다
존재하지 않는, 비어있는, 알 수 없는 값을 표현할 때 쓰인다
@undefined
값이 할당되지 않은 상태를 나타낸다
하지만 undefined 를 명시적으로 할당하는 것도 가능하다
@객체와 심볼
@typeof 연산자
인수의 자료형을 반환하는 함수이다
(1) 내장 객체는 객체형으로 분류되기 때문에 내장 객체인 Math는 object 가 된다
(2) null값은 객체가 아니지만 호환성 유지를 위해 object로 나온다
(3) 피연산자가 함수일 경우 function을 반환한다. 하지만 함수형은 따로 존재하지 않는다
@문자형으로 변환
string() -> 숫자를 문자로 변환하는 함수
문자형은 항상 따옴표 사이에 들어있다
@숫자형으로 변환
수학과 관련된 함수와 표현식에서 자동으로 이뤄진다
ex) / 를 적용한 경우
Number(value) 함수를 사용해 주어진 값을 숫자형으로 명시할 수 있다
~글자가 들어가 있는 문자열을 숫자형으로 변환하려고 하면 그 값은 NaN가 된다.~
@불린형으로 변환
1. 0, 빈 문자열, null, undefined, NaN 와 같은 비어있는 값들은 false가 된다
2. 그 되의 값은 ture 가 된다
하지만 문자 "0"은 ture가 된다