자바스크립트의 ES5기반으로 한 기본 개념들입니다.
공부했던 내용을 정리하는 용도로 오류가 있을 수 있습니다.
재배포 수정하지 마세요.
연산자
- +, -, *, /, %
- >, >=, <, <=
- ==,!=, ===,!==
- 콤마, typeof, delete, void
- instanceof, in, new 등등
할당 연산자
- +=, -=, *=, /=, %=
- <<=, >>=
- &=, ^=, |=
- 먼저=앞을 연산한 후 할당한다.
연산
var value = "딸기"
var value2 = "2"
var result3 = 2 + 4 + value;
var result4 = 3 + value2;
console.log(result3); //6딸기
console.log(typeof result3); //string
console.log(typeof result4); //32
숫자가 아닌 몇몇의 값은 연산하기 전에 숫자로 변환된다.
- undefined : NaN
- null : 0
- true : 1
- false : 0
- string : 값이 숫자면 숫자로 연산된다. +연산자일 때는 기본적으로 +의 양쪽을 더하지만 한쪽이라도 숫자가 아니면 연결이 된다.
console.log(32-2); //30
console.log(32-"2"); //30
console.log(32-true); //31
console.log(32-false); //32
console.log(32-"two"); //NaN
console.log(3*4); //12
console.log(3*"4"); //12
console.log(3*true); //3
console.log(3*false); //0
console.log(3*"four"); //NaN
console.log(2.3*3); //6.8999999995
console.log(2.3*10*3/10); //6.9
console.log(0/0); //NaN
console.log(1/0); //Infinity
console.log(0/2); //0
console.log(1/"딸기"); //NaN
console.log(5%2.5); //0
console.log(5%2.3); //0.4000000000036d
console.log(5*10-(2*2.3*10)); //0.4
- - 연산자 : string 타입이지만 값이 숫자면 number타입으로 변환하여 뺜하다. 하나라도 숫자가 아닐 경우 NaN를 반환한다.
- * 연산자 : string 타입이지만 값이 숫자면 number타입으로 변환하여 곱한다. 하나라도 숫자가 아닐경우 NaN를 반환한다. 소수 값 처리 때문에 연산 결과 소수 값이 생기는 것을 방지하기 위해 10을 곱해 소숫값없이 계산한 다음 10으로 다시 나눠준다.
- / 연산자 : string 타입이지만 값이 숫자면 number타입으로 변환하여 나눈다. 하나라도 숫자가 아닐 경우와 분자가 분모가 모두 0일 때 NaN를 반환한다. 분자가 0이면 0을 반환하고 분모가 0일 경우 Infinity를 반환한다.
- % 연산자 : string 타입이지만 값이 숫자면 number타입으로 변환하여 나눈 다음 나머지를 구한다.
단항 연산자
var result = "4"
console.log(typeof result); //string
console.log(typeof +result); //number
console.log(typeof Number(result)); //number
console.log(10 + -result); //6
console.log(result); //4
- + 단항 연산자 : 값을 number 타입으로 변환한다.
- - 단항연산자 : 값의 부호를 바꾼다. -면 +로 바꾸고 +면 -로 바꾼다. 연산할 때만 바꾸고 원래 값은 바뀌지 않는다.
후치, 전치, 논리 Not 연산자
var value1 = "4"
console.log(value1++ +5); //9
console,log(value1); //3
var value2 = "3"
console.log(--value2 +5); //7
console,log(value2); //2
var value3 = true
console.log(!value4); //false
console,log(!!"T"); //undefined
- 후치 연산자 : value++, value-- 의 형태로 문장이 끝난 후(세미콜론이 끝난 후) 연산이 이루어진다. ++라면 1씩 증가하고 --라면 1씩 감소한다.
- 전치 연산자 : ++value, --value의 현태로 문장 안에서 먼저 연산이 이루어진다. ++라면 1씩 증가하고 --라면 1씩 감소한다.
- ! 연산자 :! value의 형태로 식의 평과 결과를 true/false로 변환한 다음 true면 false로 false면 true로 반환한다. 원래 값은 바뀌지 않고 사용할 때만 변환한다.
유니코드
세계의 모든 문자를 통합화하여 코드화 한 것이다.
언어뿐만 아니라 이모티콘도 포함되어있고 이모티콘은 각 브라우저마다 조금씩 다르게 보인다.
코드값을 '코드 포인트'라고 한다. ( 0000 ~ FFFF, 10000 ~ 1 FFFF )
코드 포인트는 유니코드 컨소시엄 홈페이지에서 확인할 수 있다. http://www.unicode.org/
console.log("\u0031"); //1
표기 방법: u와 숫자 형태로 이루어져 있으며 자바스크립트에서는 u앞에 역 슬래쉬(\)를 작성해야 한다. 만약 역 슬래쉬를 문자로 쓰고 싶다면 두 개를 써주면 된다.
관계 연산자
console.log(1 < "2"); //true
console.log(2 >= "4"); //false
console.log("\u0031" >"\u0032"); //true
console.log("A" > "1"); //true
console.log("가" >= "다"); //false
console.log("B12" > "B24"); //false
- <, >, <=, >= 연산자 , instanceof 연산자, in 연산자
- 양쪽이 number 타입일 때 비교 값이 참이면 true, 거짓이면 false를 반환한다.
- 한쪽이 string 타입이라면 false를 반환하고 양쪽이 모두 string 타입이면 유니코드 사전 순서로 문자 하나씩 비교한다.
동등, 부등, 일치, 불일치 연산자
console.log(1 == "1"); //true
console.log(1 != "1"); //false
console.log(1 === "1"); //false
console.log(1 !== "1"); //true
let value;
console.log(value == undefined); //true
console.log(value == null); //true
console.log(value === undefined); //true
console.log(value === null); //false
- == : 동등 연산자, 왼쪽과 오른쪽이 같으면 true, 다르면 false이다. 값 타입은 비교하지 않는다.
- != : 부등 연산자, 왼쪽과 오른쪽이 다르면 true, 같으면 true이다.
- === : 일치 연산자, 왼쪽과 오른쪽의 값과 타입이 모두 같으면 true, 하나라도 다르면 false이다.
- !== : 불일치 연산자, 값, 또는 타입이 다르면 true, 같으면 false이다.
|| 연산자, && 연산자
var a , b = 0, c= 3;
console.log(a || b || c); //3
console.log(a || b); //undefined
console.log( b === 0 || d === 1); //true
console.log(b && c); //3
console.log(a && b && d); //false
- || : or 연산자, 식의 평가 결과가 하나라도 true면 true이고 전체가 모두 false이면 false이다. 왼쪽 결과가 true면 그 뒤는 비교하지 않는다.
- && : and 연산자, 식의 평가 결과가 모두 true면 true 하나라도 아니면 false이다. 왼쪽 결과가 false면 그 뒤는 비교하지 않는다.
조건 연산자
console.log(1 === "1" ?"smae" :"different");
console.log(1 !== "1" ?"smae" :"different");
- 조건? 문장 1 :문장 2
- 조건을 먼저 평가하고 true이라면? 뒤의 결과를 반환하고 false라면 :뒤의 결과를 반환한다.
'웹개발 > javascript' 카테고리의 다른 글
자바스크립트 Number 오브젝트 (0) | 2020.07.27 |
---|---|
자바스크립트 내장 객체 Built-in Object (0) | 2020.07.27 |
자바스크립트 함수 & 프로퍼티 Function & Property (0) | 2020.07.26 |
자바스크립트 문장 Statement (0) | 2020.07.24 |
Javascript 자바스크립트 기본 문법들 (0) | 2020.07.23 |