웹 브라우저와 node.js 차이
- JavaScript는 웹 브라우저가 이해하는 언어가 있고 서버에서 이해하는 언어(node.js)가 서로 다르게 존재
※ node.js에서는 document가 정의되어 있지 않음
- 웹 브라우저는 웹 페이지를 화면에 띄우는 것이 목적, node.js는 서버 개발 환경 제공이 목적
- 같은 엔진을 공유하지만 다른 런타임 환경을 가짐
변수 선언
규칙
- 식별자는 문자 or 밑줄 or $로 시작해야 함
- 대소문자 구별
- 예약어 사용 불가
- camelCase 장려
- 세미콜론(;)을 입력하지 않아도 오류가 발생하지 않지만 사용하는 것이 장려됨
종류
- var = 기본적인 선언 방식 (처음에 선언한 후 다음에 또 다른 줄에서 같은 변수를 재선언하면 재선언한 변수가 적용)
- let = 한번 선언하면 다음에 재선언 불가(일종의 전역변수로 {}내에서 지역변수로 재정의하여 사용가능)
- const = 한번 선언하면 다음에 재선언 불가 (일종의 상수로 {}내에서 지역변수 재정의도 불가능)
=> 코드의 안정성을 위해 var 사용은 지양되는 추세
const array
- []를 사용하여 array 생성 가능
- 인덱스(음수 가능)를 이용하여 array 내 원소 변경 가능
- push() = 배열의 맨 뒤에 값 추가
- unshift() = 배열의 맨 앞에 값 추가
- pop() = 배열의 맨 뒤에 값 제거
- shift() = 배열의 맨 앞에 값 제거
- .length = 배열 길이 반환
- join() = 배열의 내부 요소들을 지정한 텍스트로 구분하여 하나의 문자열 값으로 출력
- slice() => slice(1) = [1:], slice(2,4) = [2:4]
- splice() => slice와 출력값은 같지만 반환하는 데이터가 참조한 리스트에서 제거됨(pop()의 슬라이싱 버전)
- find() = 지정한 조건을 만족하는 요소중 제일 순서가 앞인 값을 반환
- filter() = 지정한 조건을 만족하는 모든 요소를 모아 배열로 반환
- foreach(요소명, 인덱스, 배열) = 주어진 함수를 배열의 각 요소마다 실행
※ 인덱스와 배열은 선택적으로 입력가능한 파라미터 => 해당 요소의 인덱스와 해당 요소가 속한 배열을 출력 가능하게함
const object
- {}를 사용하여 object 생성 가능
- 데이터를 키:값 형태로 원소 저장
- object.key를 사용하여 원소 추가 및 키값 수정 가능
기본 연산
- 산술 연산 = +, -, *, /, %, **(거듭제곱), //, ++, -- 등
ex) 3 ** 4 = 81
- 대입 연산 = +=, -=, *=, = 등
- 비교 연산 : ==(데이터 값만 비교), ===(데이터 값 및 타입 비교)
ex) 1(Number) == '1'(String) -> true, 1 === '1' -> false
- 논리 연산 : ||, &&, !
데이터 타입
- String, Number, BigInt, Boolean
- Undefined, Null => Null은 값이 없는 상태, Undefined는 자료형이 없는 상태 (undefined == null은 true)
- Symbol(유일하고 변경할 수 없는 타입)
- Object => object, array, date
※ typeof(a) = a의 데이터 타입 반환
함수
정의 방법
1. 선언식
function 함수명(인자) {실행식}
2. 표현식
let 함수명 = function(인자) {실행식}
3. 화살표 함수 (표현식에서 function 대신 => 입력)
let 함수명 = (인자) => {실행식}
※ 일반적으로 화살표 함수로 함수 정의를 하는 추세
※ JS에서는 Java와 다르게 정의된 인자수 보다 초과되는 인자를 입력해도 초과되는 인자가 무시되어 실행됨
ex) function add(x, y){return x+y} => add(2,5) = add(2,5,9) = 7
※ 함수 인자 정의시 기본값 설정 가능
ex) function add(x, y = 1){return x+y} => add(2) = 3, add(3,4) = 7
콜백 함수
- 다른 함수의 파라미터로써 전달되는 함수
- 비동기 처리를 위해 사용하는 방법 중 하나
※ 비동기(Asynchronous) = 특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 방식 (자바스크립트의 특성)
'블록체인 기술사업 교육 > JavaScript' 카테고리의 다른 글
블록체인 기술사업 교육 31일차 (0) | 2023.05.17 |
---|---|
블록체인 기술사업 교육 30일차 (0) | 2023.05.16 |
블록체인 기술사업 교육 10일차 (JavaScript) (0) | 2023.04.14 |
블록체인 기술사업 교육 7일차 (0) | 2023.04.11 |
댓글