프로그래머스 'Hello, JavaScript: 자바스크립트 입문' 강의와 구글링을 통해서 정리한 글입니다.
두개의 피연산자(A, B)를 가지는 연산자. A 연산자 B 의 꼴로 사용함. 피연산자는 변수나 숫자가 될 수 있음.
하나의 피연산자(A)를 가지는 연산자. 보통 연산자A의 꼴로 사용함. 대표적으로 - 연산자가 있으며, -A의 꼴로 사용하는 경우 A변수에 -1을 곱한 효과가 발생.
증감연산자 (++, --)
var a;
a = 1;
console.log(++a);
console.log(a);
a = 1;
console.log(a++);
console.log(a);
출력
2
2
1
2
Math 관련 명령어
근데 파이썬에서 썼던 것 처럼
a += 1
a -= 1
a *= 1
a /= 1
a **= 1
으로 연산과 동시에 변수의 값을 변경할 수 있더라.
두 표현식(A, B)의 관계를 비교하는 이항연산자. 관계에 따라 boolean 타입의 true, false로 표현됨.
관계연산자 | 동작 | True 인 예시 | False인 예시 |
---|---|---|---|
< | A보다 B가 더 큰 경우 참 | 3 < 5 | 3 < 3 |
> | A보다 B가 더 작은 경우 참 | 5 > 3 | 3 > 3 |
<= | A보다 B가 크거나 같은 경우 참 | 3 <= 3 | 4 <= 3 |
>= | A보다 B가 작거나 같은 경우 참 | 3 >= 3 | 3 >= 4 |
== | A와 B가 같은 경우 참 | 3 == 3 | 4 == 3 |
!= | A와 B가 같지 않은 경우 참 | 3 != 4 | 3 != 3 |
파이썬과 같아 보인다~
&& (and) 연산자
두 피연산자가 모두 true인 경우에만 true를 나타내는 이항연산자
|| (or) 연산자
두 피연산자가 하나라도 true인 경우 true를 나타내는 이항연산자
! (not) 연산자
피연산자가 true인 경우 false를, false인 경우 true를 나타내는 단항연산자
파이썬과 달라서 익숙해져야겠다..
수학에서 곱하기를 더하기보다 먼저 계산하는 것 처럼, Javascript에서도 연산자에 우선순위가 존재.
우선순위 순으로 정리한 연산자
우선순위를 명시하기 위해 괄호를 사용. 괄호안의 계산식이 먼저 계산됨.
문자열의 길이는 .length 또는 ["length"]로 얻을 수 있다.
객체(object)에 정의된 속성(property)에 접근하는 방법과 동일하다.
var str1 = 'hello';
console.log(str1.length);
console.log(str1["length"]);
출력
5
5
.concat 명령어 또는 +연산자로 문자열을 붙일 수 있다.
var str1 = 'hello', str2 = ' world';
console.log( str1.concat(str2) );
console.log( str1 + str2 );
출력
hello world
hello world
숫자를 문자열에 붙이면 어떻게 될까?
console.log( 'hello' + 123 );
console.log('hello'.concat(123));
출력
hello123
hello123
숫자를 문자열로 바꾸어 더한다.
.charAt 함수 이용
var str1 = 'hello';
console.log( str1.charAt(0) );
console.log( str1.charAt(str1.length-1) );
출력
h
o
대괄호([]) 사용
var str1 = 'hello';
console.log( str1[0] );
console.log( str1[str1.length-1] );
출력
h
o
문자열의 연속된 일부분을 구하는 함수
.substring( a , b ) : 인덱스 a 부터 인덱스 b 전까지의 문자열 반환 (파이썬의 리스트슬라이싱과 같다.)
var str1 = 'helloworld';
console.log( str1.substring(2,5) );
console.log( str1.substring(2) );
출력
llo
lloworld
substr(pos, length) : pos에서 length길이 만큼의 부분 문자열 반환
var str1 = 'helloworld';
console.log( str1.substr(2,5) );
console.log( str1.substr(2) );
출력
llowo
lloworld
var str1 = 'helloworld';
console.log( str1.substr(-6) ); // pos가 음수이면, 뒤에서 pos 번째까지의 문자열을 리턴한다.
console.log( str1.substr(-6,3) ); // length가 있으면, 뒤에서 pos 번째까지의 문자열에서 다시 앞에서 length 까지의 문자열을 리턴한다.
출력
oworld
owo
.indexOf(str) : 앞에서 처음 등장하는 str의 위치를 리턴합니다.
var str1 = 'helloworld';
console.log( str1.indexOf('l') );
console.log( str1.indexOf('ow') );
console.log( str1.indexOf('a') );
출력
2
4
-1 // 문자열에 존재하지 않는 문자를 찾으면 -1을 리턴한다.
.lastIndexOf(str) : 뒤에서 처음 등장하는 str의 위치를 리턴합니다.
var str1 = 'helloworld';
console.log( str1.indexOf('l') );
console.log( str1.substr('ow') );
출력
8
4
값을 저장할 수 있는 엘리먼트(변수)의 연속된 공간. 주소(인덱스, index)를 이용해 각 엘리먼트에 접근 가능.
var arr1 = []; // 빈 배열
var arr2 = [1, 2, 3]; // 길이가 3인 배열
var arr3 = [ 1, true, 3.14, "string"]; // 어떤 자료형이든 저장될 수 있음
console.log(arr1.length);
console.log(arr2.length);
console.log(arr3[arr3.length-1]);
출력
0
3
string
.push(element) : 배열의 뒤에 엘리먼트 추가
.pop() : 배열의 뒤에서 엘리먼트 삭제하고 리턴
var arr = [1,1,1,1];
arr.pop(); // 1
console.log(arr); // [1,1,1]
arr.push(2); // 4
console.log(arr); // [1,1,1,2]
.shift() : 배열의 앞에서 엘리먼트 삭제하고 리턴
.unshift(element) : 배열의 앞에 엘리먼트 추가
var arr = [1,1,1,1];
arr.shift(); // 1
console.log(arr); // [1,1,1]
arr.unshift(3); // 4
console.log(arr); // [3,1,1,1]
arr1.concat(arr2) : arr1과 arr2 붙임
var arr1 = [1,2,3], arr2 = [4,5];
console.log( arr1.concat(arr2) );
console.log(arr1 + arr2); // 덧셈은 배열을 문자열로 변환하여 붙인다.
출력
[1,2,3,4,5]
'1,2,34,5'
arr.indexOf(element) : arr에서 element가 있는 첫 위치를 검색
arr.lastIndexOf(element) : arr에서 element가 있는 마지막 위치를 검색
문자열을 구분자(separator)로 나눠서 각각을 담은 배열을 반환하는 함수
var str="1,2,3,4,5";
arr = str.split(",");
console.log(arr);
출력
["1", "2", "3", "4", "5"]
//한줄 주석
/*
여러 줄 주석
우왕
*/
if(/*조건식*/){
/*참인경우 실행될 코드*/
}
else if( /*조건식*/ ){
/*if 문의 조건이 거짓이고, 위의 조건식이 참인경우 실행될 코드*/
}
/* 여러개의 else if... */
else{
/*모든 if, else if 문이 모두 실행되지 않았을 때 실행될 코드*/
}
switch, case는 조건에 따라 프록그램의 흐름을 분기해서 특정 코드가 실행되도록 합니다. break구문을 만나면 switch-case의 마지막 중괄호 밖으로 빠져나오게 됩니다.
아래의 코드는 choice의 값에 따라 출력되는 값이 달라지는 코드입니다.
switch( choice ){
case 1:
console.log("1번 메뉴를 선택하셨습니다.");
break;
case 2:
console.log("2번 메뉴를 선택하셨습니다.");
break;
case 3:
console.log("3번 메뉴를 선택하셨습니다.");
break;
case 4:
console.log("4번 메뉴를 선택하셨습니다.");
break;
default:
console.log("없는 메뉴 입니다.");
break;
}
switch('hi'){
case 'bye':
console.log('casebye');
case 'hi':
console.log('casehi');
}
출력
casehi
문자열도 조건에 들어간다.
break을 넣는 위치를 조절해서 효율적으로 switch문을 사용할 수 있다고 하는데..
switch(1){
case 0:
console.log('case0');
case 1:
console.log('case1');
case 2:
console.log('case2');
case 3:
break;
console.log('case3');
case 4:
console.log('case4');
}
출력
case1
case2
어디에 쓴다는 걸까..
switch는 파이썬에서 보지못한 문법이라 생소하다.
사용법에 익숙해져야겠다.