
프로그래밍 언어의 구성요소를 보면 식과 문으로 나눠진다.
- 식
- 값으로 환원 된다.
- ; 으로 끝내준다. 예를 들어 식 3개가 있는데 식 3개가 값1개를 반환하는지 각각 1개의 값을 반환하는지 알 수 없기 때문에 식을 ; 으로 구분 지어주는것이다.
- 값이라고 명명한 것들은 식일 수 있다.
- 문
- 값처럼 끝나는 것 이 아니라 ; 으로 안끝나도 상관없다.
추가정리필요
연산자
할당연산자 (기본적인 것은 MDN 사이트 참고)
- x ^= y 는 x = x ^ y와 같다 (XOR)
- x |= y 는 x = x | y와 같다.(OR)
★구조분해 할당★
배열 리터럴이나 객체 리터럴를 분해해서 데이터를 할당 해주는 것이다.
아래 예를 확인해보자배열 const colors = ['red','yellow', 'black'] <br> // const red = colors[0]; <= 이런식으로 할당 해줘야하는데 // const yellow = colors[1]; // const black = colors[2]; <br> const [red, yellow, black] = colors; <= 이렇게 한문장으로 할당가능 <br> console.log(red); // red 객체가 생성 되었다.여기서 yellow 만 빼오고 싶다면
const [, yellow] = colors;이렇게 작성하면된다.객체 const color = { red : red, yellow : yellow, black : black } const { red, yellow } = color객체는 속성의 이름이 있기 떄문에
const { black , red} =color;와 같이 순서에 상관없이 작성할 수 있다.
비교연산 (기본적인 것은 MDN 사이트 참고)
- 동등비교연산자 == : 타입은 신경쓰지 않는다.
- 일치연산자 === : 타입까지 같아야 하며 이것만 쓴다고 생각하자
산술연산자 (기본적인 것은 MDN 사이트 참고)
- 단항 플러스 (+) : 단항 연산자입니다. 피연산자가 숫자 타입이 아니면 숫자로 변환을 시도합니다.
+"3"은 3을 반환합니다. +true는 1을 반환합니다.
비트연산자 (나중에 따로공부 현재는 x)
논리연산자
- expr1 && expr2 : 둘 다 참일 때 true를, 그 외에는 false를 반환합니다.
var a5 = "Cat" && "Dog"; // t && t returns Dog => 문자끼리일땐 문자반환(1번째가 true이면 2번째 값 반환이니까 "Dog") var a6 = false && "Cat"; // f && t returns false var a7 = "Cat" && false; // t && f returns false
- expr1 || expr2 : 불리언 값과 함께 사용한 경우, 둘 중 하나가 참일 때 true를, 그 외에는 false를 반환합니다.
var o5 = "Cat" || "Dog"; // t || t returns Cat var o6 = false || "Cat"; // f || t returns Cat var o7 = "Cat" || false; // t || f returns Cat
- !expr : true면 false반환, false면 true반환
var n1 = !true; // !t returns false var n2 = !false; // !f returns true var n3 = !"Cat"; // !t returns false
문자열 연산자
var mystring = '한'; mystring += '글'; // "한글"로 평가되며, mystring에 "한글"을 할당함
★조건(삼항) 연산자★
if(a===b){ a=0; }else{ a=1 } // 이런식을 <br> a= (a === b) ? 0 : 1; // 이렇게 1줄로 바꿀 수 있다.
★typeof★ (방어 코드 작성할때 많이사용)
var myFun = new Function("5 + 2"); var shape = "round"; var size = 1; var foo = ['Apple', 'Mango', 'Orange']; var today = new Date(); <br> typeof myFun; // "function" 반환 typeof shape; // "string" 반환 typeof size; // "number" 반환 typeof foo; // "object" 반환 typeof today; // "object" 반환 typeof dontExist; // "undefined" 반환
void
void 연산자는 표현식을 평가할 때 값을 반환하지 않도록 지정합니다. expression은 평가할 JavaScript 표현식입니다. 주위 괄호는 선택 사항이지만, 사용하면 좋습니다.void (expression) void expression
관계 연산자
관계 연산자는 피연산자를 서로 비교하고, 비교 결과가 참인지에 따라 불리언 값을 반환합니다.
- in : 연산자는 지정한 속성이 지정한 객체에 존재할 경우 true를 반환합니다. 구문은 다음과 같습니다.
var trees = ["redwood", "bay", "cedar", "oak", "maple"]; 0 in trees; // true 반환 3 in trees; // true 반환 6 in trees; // false 반환 "bay" in trees; // false 반환 (인덱스에 위치한 값이 아니라 // 인덱스 자체를 지정해야 함) "length" in trees; // true 반환 (length는 Array의 속성임) // 내장 객체 "PI" in Math; // true 반환 var myString = new String("coral"); "length" in myString; // true 반환 // 사용자 정의 객체 var mycar = { make: "Honda", model: "Accord", year: 1998 }; "make" in mycar; // true 반환 "model" in mycar; // true 반환
- instanceof : instanceof 연산자는 지정한 객체가 지정한 객체 타입에 속하면 true를 반환합니다.
다음의 코드는 instanceof 연산자를 사용해서 theDay 객체가 Date 객체인지 알아내는 예제입니다. theDay 객체는 Date 객체이기 때문에, if 명령문 안의 내용이 실행됩니다.var theDay = new Date(1995, 12, 17); if (theDay instanceof Date) { // 실행할 명령문 }
연산자 우선순위(기본적인 것은 MDN 사이트 참고)
- 연산자 우선순위표는 사이트 참고하자.
- 연산자 우선순위에 얽매이지 않고 ()로 감싸사 우선순위를 강제지정해서 명확하게 우선순위를 명시해주는 습관이 중요!
여기서 ( ) 는 어떤 유형의 데이터를 값으로 강제로 묶는 역할을 하는 특수한 용도가 있다. ex) function의 문을 ( ) 로 감싸서 값으로 만드는 예