자바스크립트 9

[JavaScript] 배열 메서드

배열 메서드 배열은 그 자체로 개체이므로 매서드가 있습니다. 1. slice let arr = ['a', 'b', 'c', 'd', 'e']; console.log(arr.slice(2)); // cde console.log(arr.slice(2,4)); // cd console.log(arr.slice(-2)); //de slice 매서드를 이용하여 배열의 요소를 자를 수 있습니다. 괄호 안에 인덱스를 넣어 사용할 수 있는데 -를 입력할 경우 끝에서부터 -1, -2... 이렇게 셉니다. 2. splice splice의 결과는 slice와 동일하지만, splice는 원래 배열을 변경합니다. splice해서 추출된 요소를 잃고 나머지 요소만 기존의 배열에 포함됩니다. 3. reverse arr.revers..

[JavaScript] 함수와 함수 메서드, 클로저

디폴트 매개변수 ES5에서는 디폴트 값을 설정할 때 함수 안에 아래와 같은 방식을 사용하였습니다. numPassengers = numPassengers || 1; price = price || 100; 그러나 ES6에서는 함수의 매개변수에 바로 디폴트 값을 설정할 수 있습니다. const createBooking = function(flightNum, numPassengers = 1, price = 199) 함수를 사용할 때 매개변수를 건너뛰고 입력할 수는 없습니다. 만약 1, 3번째 매개변수만 입력하고 싶다면 2번째 매개변수 위치에 undefined를 입력하면 됩니다. 퍼스트 클래스 함수, 고차원 함수 함수를 변수나 개체 속성에 저장할 수 있습니다. 함수를 다른 함수에 대한 인수로 넘길 수도 있습니다...

[JavaScript]자료구조, 연산자와 문자열

Array destructuting Array destructing 이란 배열이나 개체의 값을 개별 변수로 분해하는 것입니다. const arr = [2,3,4]; const [x,y,z] = arr; 위와 같이 표기할 경우 x,y,z가 각각 2,3,4가 되는 것을 확인할 수 있습니다. 이때 기존의 배열인 arr은 아무 영향을 받지 않습니다. 배열에서 개별 변수로 분해할 때 꼭 모든 변수를 다 쓸 필요는 없습니다. const [first, , second] = arr; 위와 같은 방법으로 2와 4만을 추출할 수도 있습니다. 배열 내의 원소를 바꾸기 위해 임시 변수를 사용할 수도 있습니다. 또 배열 내의 원소의 위치를 바꾸기 위해서도 이 방법을 사용할 수 있습니다. 중첩된 배열에 대해서도 형태를 같게 써주..

[JavaScript]자바스크립트의 동작 원리

자바스크립트 런타임 자바스크립트 엔진은 자바스크립트 코드를 실행하는 프로그램입니다. 모든 브라우저에는 자바스크립트 엔진이 있습니다. 예를 들어 구글의 V8 엔진이 자바스크립트 엔진의 한 종류입니다. 자바스크립트 엔진은 콜 스택과 힙을 가지고 있습니다. 콜 스택(call stack)은 실행컨텍스트를 이용하여 코드를 실행하는 곳이고 힙(heap)은 개체가 저장되는 곳입니다. 자바스크립트는 interpreted 언어라 compiled 언어에 비해 속도가 느린 편입니다. interpreted 언어는 소스 코드를 한 줄씩 실행 시키는 언어입니다. 모던 자바스크립트에서는 Just-in-time compilation 방법을 사용합니다. 소스코드를 기계어로 바꾼 후 실행하여 성능을 개선했습니다. 자바스크립트 런타임은 ..

[JavaScript] 자바스크립트의 DOM

DOM DOM이란 Document Object Model의 약자입니다. DOM은 텍스트나 html 요소, css 스타일을 바꿀 수 있게 해줍니다. 돔 트리 구조를 보면 가장 위에 document가 있고 그 아래 root 요소인 html이 있습니다. 아래에는 head와 body로 나눌 수 있고 그 아래에도 작은 요소들이 있습니다. DOM은 자바스크립트라고 할 수는 없지만 웹 API의 하나입니다. web api와 자바스크립트는 서로 상호작용할 수 있기 때문에 자바스크립트에서 DOM을 사용할 수 있습니다. DOM으로 선택하는 방법 document.querySelector('.message').textContent querySelector 안에 클래스명을 넣어주고 textContent를 쓰면 해당 클래스의 텍스..

[JavaScript] 자바스크립트의 기초-4

Object 개체 배열에서는 요소들에 이름을 줄 수 없고 순서로만 구분할 수 있습니다. 개체에서는 각각의 요소에 이름을 줄 수 있습니다. const kim = { firstName: 'Jay' lastName: 'Kim', age: 2037 - 1991, job: 'teacher', friends: ['Peter', 'Steven'] 배열과 달리 개체는 중괄호를 사용하며 키와 값이 있습니다. 개체에서 원하는 값을 가져올 때는 배열이름.키 를 입력하거나 배열이름['키']를 입력해야 합니다. 대괄호를 사용한 표기법의 경우 식을 넣을 수 있습니다. console.log(kim.lastName); console.log(kim['lastName']); 개체는 값이므로 그 안에 함수를 추가할 수 있습니다. 함수를 ..

[JavaScript] 자바스크립트의 기초-3

Strict mode 'use strict' 를 가장 윗줄에 쓰면 엄격한 모드가 적용됩니다. 엄격한 모드를 실행하면 특정 작업을 금지시키고 눈에 보이는 오류를 알려줍니다. Function 함수 function 함수이름() { ~~~~~; } 함수이름(); 함수에는 매개변수가 있습니다. 함수 이름 뒤에 매개변수를 추가하여 이용할 수 있습니다. 나중에 함수를 불러올 때 매개변수를 입력하면 해당하는 매개변수가 위치한 함수 내 코드를 실행할 때 적용이 됩니다. 함수에서 어떤 내용을 출력할 때는 return 을 활용할 수 있습니다. 함수 표현식 const age = function (birthYear) { reuturn 2037 - birthYear; } 함수 선언 외에도 함수 표현식을 사용할 수 있습니다. 표현..

[JavaScript] 자바스크립트의 기초-2

문자열과 템플릿 리터럴 문자열에 변수를 추가할 수 있습니다. 그러나 문자열의 구조를 파악하기가 쉽지 않습니다. const name = "I'm" + firstName + ', a' + (year - birthYear) + 'years old ' + job + '!'; 이를 해결하기 위한 방법이 템플릿 리터럴입니다. const name = `I'm ${firstName}, a ${year - birthYear} years old ${job}!`; 키보드의 1 옆에 있는 ` 배틱과 달러 표시를 사용하여 표현할 수 있습니다. (파이썬의 f스트링 같은 역할입니다.) 템플릿 리터럴을 활용하면 다중라인 문자열을 사용할 수 있습니다. 즉, 여러 줄을 편리하게 입력할 수 있습니다. 조건문 If / Else if ( 조..

[JavaScript] 자바스크립트의 기초-1

자바스크립트란? 자바스크립트는 하이레벨의 객체지향, 다중패러다임의 프로그래밍 언어입니다. 프로그래밍 언어는 컴퓨터에 지시를 내리는 언어입니다. 하이레벨이란 우리가 복잡한 부분을 고려할 필요가 없다는 것, 객체지향이란 객체를 기반으로 하여 사용하는 언어라는 것, 멀티 패러다임은 다른 종류의 프로그래밍을 할 수 있다는 것입니다. HTML과 CSS로 내용과 디자인을 마치고 웹앱을 만들기 위해 사용하는 프로그래밍 언어입니다. 우리는 자바스크립트를 이용하여 프론트엔드의 역할인 동적인 효과와 웹앱을 만들 수 있습니다. 리액트, 엥귤러, 뷰 같은 라이브러리를 활용하기 위해 자바스크립트 실력을 키워두는 것이 좋습니다. 그리고 자바스크립트로 웹 서버, 백엔드의 역할을 하기 위해 노드를 사용할 수 있습니다. 또한 자바스크..