아직 강의내용이 다듬어지지 않아 상당히 더럽습니다.
추후 수정예정이니 양해부탁드립니다.
*단어목록
문자열 : “”또는 ‘’으로 싸여있으며, 사람이 읽을 수 있게 ‘문자’로 인식되는 것입니다.
숫자 : “”나 ‘’으로 싸여있지 않으며, ‘숫자’로 인식됩니다.
논리형 : true, false 같이 논리를 다룰 때 단골로 나옵니다.
변수 : 정보를 할당(저장)할 수 있는 공간이며, 문자열, 숫자, 자바스크립트 코드 등을 저장할 수 있습니다.
NaN : Not a Number 의 약자로, 주로 숫자가 들어가야 할 곳에 문자열이 끼여있으면 발생합니다.
1. msg, room, replier
msg는 카톡방에서 온 메시지내용을 의미합니다.
room은 카톡방에서 메시지가 왔을 때 그 메시지를 보낸 방을 의미합니다.
replier는 봇이 답장을 할 때 쓰는 것입니다.
replier.reply("안녕하세요");
를 한다면 채팅방에 안녕하세요 라는 메시지가 전송됩니다.
2. 변수
- var -
이것은 변수를 선언할 때 쓰이는 것입니다.
예를 들어,
var a;
이라고 하면 a라는 비어있는 변수가 생깁니다.
아직 이 변수 안에는 아무것도 들어있지 않습니다.
이때
a = 10;
이라고 한다면 a라는 변수 안에 10 이라는 숫자가 할당됩니다.
a = "안녕하세요 S2";
이라고 한다면 "안녕하세요 S2" 이라는 문자열이 할당됩니다.
만들자마자 정보를 할당할 수도 있습니다.
var b = 20;
이라고 한다면 b라는 변수가 생기며, 20 이라는 숫자가 할당됩니다.
이때 주의할 점은 변수 이름이 msg, room, DataBase, FileStream 등과 같이 자바스크립트 안에 이미 있는 이름과도 겹쳐서는 안 됩니다.
또한 한 줄의 끝에는 세미콜론(;)을 붙여 주는 것이 좋습니다.
(단, {이나 } 끝에는 보통 세미콜론을 붙이지 않습니다.)
(물론 다른 예외사항도 있긴 합니다만, 그런 걸 초보가 쓸 일은 없으니 넘어갑시다.)
(let 이나 const같은 것도 있습니다만 그것도 지금 쓸 일은 없으니 나중에 설명하겠습니다.)
3. 연산자
- 연산자 -
연산자들에는 아래와 같은 것들이 있습니다.
= + - ! * / % ^ > < == += -= != *= /= %= >= <= ++ -- || && === !==
등등
참고로 ()로 묶어 놓으면 그것을 최우선으로 계산합니다.
하나하나 알아보도록 하죠.
= 은 대입을 의미합니다.
만약
var a = 100;
이라고 한다면 a에 100을 대입하니까 변수 a에 100이 할당되는 겁니다.
이때 바로 이어서
a = 40;
이 이어진다면 앞서 대입했던 100은 사라지고 40이 새로 대입됩니다.
+ 는 말 그대로 더하기입니다.
숫자끼리 더하면 일반적인 상식대로 계산이 이루어지고,
문자열끼리 더하면 앞의 문자열 뒤에 뒤의 문자열이 붙어버립니다.
예를 들어,
var a = 10;
var b = 20;
var c;
c = a + b;
이라고 했다면 변수 c에는 30이라는 숫자가 할당됩니다.
또,
var a = "안녕하세요";
var b = "반가워요";
var c;
c = a + b;
이라고 한다면 변수 c에는 “안녕하세요반가워요”이라는 문자열이 할당됩니다.
- 는 말 그대로 빼기입니다.
숫자끼리 빼는 건 초등학생도 아는 것이기도 하고, 앞서 더하기와 원리가 같으니 넘어가고, 문자열끼리 빼는 건 하지 마세요. 나중에 문자열 빼는 거 따로 나와요.
! 는 NOT으로 보시면 됩니다. 이를 논리형 연산자라고 하는데, 이 연산자는 특이하게 다른 논리형 연산자 앞에 붙으면 ~이 아니다 로 바꿔버립니다. (저도 이 상태 그대로는 써본 적이 없답니다.)
* 는 곱하기입니다.
문자열끼리 곱한다는 생각은 하지 마시고(안 됩니다) 숫자끼리 곱하는 건 그냥 아시는 대로 수학 배우신 거랑 같습니다. 사용법도 더하기랑 같지만 더하는 대신 곱할 뿐입니다.
/ 는 나누기입니다. 나눠질 수가 앞에 옵니다. 사용법은 더하기와 같지만 더하는 대신 나눌 뿐이며, 나머지라는 개념 없이 그대로 소수까지 계산합니다.
% 는 나머지 연산자입니다. 나눠질 수가 앞에 오며, 몫은 버리고 나머지를 반환합니다. 당연히 사용법은 더하기와 같습니다.
^는 제곱입니다. 왼쪽 수를 오른쪽 수만큼 제곱합니다.
예를 들어,
var a = 2;
var b = 3;
var c;
c = a^b;
를 한다면 변수 c에 숫자 8이 할당됩니다.
> 와 < 은 각각 크다와 작다 라는 논리형 연산자이며 양쪽의 숫자를 비교해 보고 옳다면 true, 아니라면 false를 반환합니다.
(문자열끼리 비교하는 짓은 하지 마세요)
== 은 같다 라는 논리형 연산자입니다.
그냥 양쪽이 같으면 true를 반환하고, 아니면 false를 반환합니다.
(단, 문자열인지 숫자인지는 안 따져요)
예를 들어,
var a = 200;
var b = 300;
var c = "안녕하세요";
var d = "200";
이라고 미리 변수들을 설정해 놓았다면,
a == b는 false이고,
a == c도 false이지만,
a == d는 true를 반환합니다.
+= 와 -=는 대입연산자입니다. 단지 대입하기 전에 왼쪽 것과 오른쪽 것을 더하거나 뺀 뒤 왼쪽에 대입할 뿐이죠.
예를 들어,
var a = 100;
var b = 200;
var c = "안녕하세요";
var d = "반가워요";
이라면
a += b;
를 하였을 때 a 에는 300이라는 숫자가 대입됩니다.
그냥 a = a+b를 한 것이나 같습니다.
-=, *=, /=, %= 도 마찬가지의 원리입니다.
>= 와 <= 는 > 와 < 하고 거의 같지만, 단지 크거나 같다 그리고 작거나 같다를 의미할 뿐입니다.
++는 자기 앞에 온 것에다가 1을 더합니다.
예를 들어,
var a = 0;
a++;
이라고 한다면 변수 a는 0에 1을 더한 값인 1이 됩니다.
--는 ++와 비슷하지만 단지 1을 더하는 게 아닌 1을 빼는 것일 뿐입니다.
|| 는 OR을 나타내는 연산자입니다.
주로 나중에 배울 if 같은 제어문이나 for, while 같은 반복문 등에 들어가는 조건식에 쓰이게 됩니다. 이것은 제어문에서 자세히 다루도록 하겠습니다.
&& 는 AND를 나타내는 연산자입니다.
이것도 조건식에서 쓰입니다. 제어문에서 자세히 다루도록 하겠습니다.
=== 는 ==과 비슷합니다. 양쪽이 내용도 같고, 형태(숫자, 문자열, 논리 등)도 같은지 검사해서 만약 모두 같다면 true를 반환하며, 하나라도 같지 않다면 false를 반환합니다.
예를 들어,
var a = 1;
var b = "1";
var c = 1;
var d;
이라고 한다면,
d = (a === b);
를 했을 경우에는 변수 d에는 false라는 논리형 데이터가 할당됩니다.
a 는 1이라는 숫자형 데이터가 들어있고, b에는 “1”이라는 문자열형 데이터가 들어있기에 형태가 다르기 때문이죠.
만약
d = (a === c);
를 한다면 변수 d에는 true이라는 논리형 데이터가 할당됩니다.
a 와 c 모두 1이라는 숫자형 데이터를 가지고 있기에 일치하기 때문이죠.
!== 는 != 와 비슷합니다. 양쪽이 내용이 다르거나, 형태(숫자, 문자열, 논리 등)가 다르거나 둘 중 하나라도 다르다면 true를 반환하며, 내용과 형태 둘 다 같다면 false를 반환합니다.
===의 반대인 셈이죠.
4. 기본적인 도구들
- indexOf() -
이것은 특정한 문자열에서 ()안의 문자열이 포함되는지 확인하는 것입니다.
문자열의 앞부터 검사해서 있다면 그 위치를 숫자로 반환하며, 없다면 -1 을 반환합니다.
참고로 위치는 0부터 시작합니다.
예를 들어, 메시지가 왔을 때, 이 메시지 안에 “안녕” 이라는 단어가 있는지 확인하려면
msg.indexOf("안녕");
을 해보면 됩니다.
예시로
msg가 “1급_청정수님 안녕하세요” 이라면
8을 반환할 것이고,
msg가 “네 반갑습니다” 이라면
-1을 반환합니다.
1급_청정수님 안녕하세요
0 1 2 3 4 5 6 7 8 9 10 11 12
- String() -
()안의 숫자나 코드 등을 문자열화합니다.
예를 들어,
013924 이라는 숫자를 문자열 화하고 싶다면
var a = 013924;
var b;
b = String(a);
을 하면 변수 b에 “013924” 이라는 문자열이 할당됩니다.
- Number() -
()안의 숫자로 된 문자열을 숫자로 바꿉니다.
예를 들어, “123” 이라는 문자열을 숫자로 바꾼다면,
var a = "123";
var b;
b = Number(a);
를 하면, 변수 b에 123 이라는 숫자가 할당됩니다.
만약 ()안에 숫자가 아닌 문자열이 끼여 있다면 NaN을 반환합니다.
예를 들어, “가나다 123 abc”라는 문자열을 Number()에 집어넣는다면
var a = "가나다 123 abc";
var b;
b = Number(a);
을 하면 변수 b에 NaN이 할당됩니다.
- replace(a,b) -
이것은 앞의 문자열에서 a가 있는지 앞에서부터 찾아본 뒤, 가장 먼저 찾은 것을 b로 바꿉니다.
예를 들어, 메시지에서 “/검색 ”을 없애고 싶다면
var a;
a = msg.replace("/검색 ",“”);
을 했을 때 변수 a에 “/검색 ” 이 제거된 문자열이 할당됩니다.
또, 만약 “안녕하세요 1급_청정수 님” 이라는 메시지에서 “안녕하세요 ”를 “안녕하십니까” 로 바꾸고 싶다면
var a;
a = msg.replace("안녕하세요",“안녕하십니까”);
를 하면 변수 a에 “안녕하십니까 1급_청정수 님” 이라는 문자열이 할당됩니다.
- trim() -
문자열 앞뒤의 공백을 없앱니다.
예를 들어, “ 안녕하십니까” 라는 메시지에서 앞의 공백을 없애고 싶다면
var a;
a = msg.trim;
을 하면 변수 a에 “안녕하십니까” 이라는 문자열이 할당됩니다.
- 주석 -
자바스크립트에는 주석, 즉 // 이나 /* */ 을 이용하여 코드 내부에 설명을 붙일 수 있습니다. 보통 1줄짜리 주석에는 //을 사용하고, 여러 줄짜리 주석에는 /* */ 을 사용합니다.
예를 들어,
var a = 100;
//a += 200;
이라고 한다면 2번째 줄은 주석처리되어 작동하지 않으므로 변수 a에는 100이 그대로 있습니다.
또,
var a = 100;
var b = 30;
/*
a += b;
*/
a -= b;
이라고 한다면 변수 a에 a와 b를 더한 수인 70이 저장됩니다.
궁금하신 점이 있다면 댓글로 적어주시기 바랍니다.
'메봇 강좌' 카테고리의 다른 글
3.3.반복문 (0) | 2020.03.29 |
---|---|
3.2.제어문 (0) | 2020.03.28 |
2.1. 핑퐁 봇 만들어보기 (10) | 2020.03.26 |
2. 카카오톡 봇 기본 세팅하기 (9) | 2020.03.26 |
1. 카카오톡 봇에 대하여 (0) | 2020.03.26 |