리액트 네이티브 강의를 듣던 중 Javascript관련 수업을 듣다가, 자바 스크립트의 기본적인 지식이 많이 부족함을 느끼고 생활코딩에서 먼저 자바스크립트의 기초를 배운 다음에 리액트 네이티브를 본격적으로 수강하고자하는 생각이 들었다.
그래서 생활코딩의 도움을 받아 Javascript를 공부하면서 배운 것을 간단히 블로그에 write-up해보도록 하겠다.
1. 오리엔테이션
웹 브라우저를 꾸미고 동작시키기 위해 JS를 사용한다. 그런데 웹서버를 직접 제어하는 프로그래밍 언어도 많다.
PHP, JAVA, Python 등등
탈 웹브라우저는 자바스크립트가 웹서버에서 웹브라우저로의 응답하는 형태를 웹 브라우저에서 바로 구현될 수 있게 되는 것이다.
제일 대표적인 것이 node.js이고 node.js로 인해 자바스크립트로 웹서버를 사용할 수 있다.
신기하다.
이렇게 자바스크립트는 웹 브라우저를 넘어서 웹 서버를 제어할 수 있다.
탈웹 : 웹 바깥의 영역도 다룰 수 있다.
Ex ) Google Apps Script
2. 실행과 실습
이런 식으로 Alt + B를 쓰면 된다.
나는 vscode를 사용해서 개발할 것이다.
3. 숫자와 문자
자바스크립트에서는 주로 쓰는 데이터 타입인 문자와 숫자를 어떻게 다룰까?
숫자의 표현
Math.pow(2,5);
32
Math.round(10.6);
11
Math.ceil(10.2);
11
Math.floor(10.2);
10
Math.sqrt(9);
3
Math.random();
0.23456764543456
Math.round(100* Math.random() );
67
* 문자의 표현
alert('egoing\'s coding everybody');
다음에서 \뒤의 '는 문자로 인식된다.
typeof 1
"number"
//typeof 명령어는 뒤의 문자 혹은 숫자의 데이터 타입을 출력한다.
\n은 줄바꿈 문자이다.
"coding" + "everybody"
codingeverybody
"1" + "1"
"11"
"coding everybody".length
16
"code".indexof("e")
3
// e의 순서를 출력
4. 변수
변수는 값을 담는 컨테이너이다.
var a= 1;처럼 var키워드를 통해 변수를 선언한다.
5. 비교 연산자
자바스크립트에서는 1을 true, 그 외의 숫자를 false로 인식한다.
비교 연산자에서는 == 와 === 두가지 형태가 있는데 다음 예시를 통해 두 연산자를 비교해보자.
true == 1
true
true === 1
false
// 여기서 false가 출력되는 이유는 'true'는 boolean 데이터 타입이고 1은 정수형 데이터 타입이기 때문이다.
6. 조건문
그러하다.
신기. 이렇게 사용자로부터 입력을 받을 수 있는 명령어 prompt도 있다.
prompt에 입력된 값은 입력된 값으로 변환된다. (return의 개념)
그 외의 논리 연산자(기존에 알고있었던 논리연산자 && || 등과 동일)를 설명해주셨다.
undefined, '', null, NaN ----> false로 간주
7. 반복문
C언어와 동일하다.
8. 함수
def 가 function으로 대체된다는 것 외엔 C언어와 동일하다.
그리고 함수를 정의하는 방법은 여러가지이다.
/* 자바스크립트의 첫번째 write up은 여기까지 하겠다. 다음 포스팅에서는 배열, 객체, 모듈, 그리고 UI와 API, 정규표현식까지 담아낼 예정이다.
생각보다 내용이 어렵지 않고 C언어의 변형이라고 생각된다. 빠르게 문법을 습득한 뒤 리액트 네이티브로 넘어가서 배우고, 자바스크립트를 제대로 활용하는 법을 배우고 싶다. 생활코딩에 Web2 - Javascript라는 강의가 따로 있던데 리액트 네이티브의 수강이 끝나거나 아니면 수강 도중 시간이 남으면 한번 정독해보는 시간을 가져야 겠다. 확실히 문법 위주 강의라 지루한 감이 있고 C언어와 많이 유사해서 따로 포스팅에 담을 만한 내용이 없긴 하다. 그래도 꼼꼼히 한번 볼 때 잘 보고 잘 마스터해보자. 이제 자야지..... */
'Langauge > JavaScript' 카테고리의 다른 글
생활코딩 JavaScript Write-up #2 (0) | 2021.01.27 |
---|