JS 9

실행 컨텍스트

활성화된 실행 컨텍스트의 수집 정보 Variable Environment Lexical Environment ThisBinding Variable Environment 최초 실행 시 Variable Environment에 담기는 내용은 Lexical Environment와 같다. 실행 컨텍스트를 생성할 때 Variable Environment에 환경 정보를 담고 그대로 복사해서 Lexical Environment를 만든다. 이후에는 Lexical Environment를 주로 사용한다. Variable Environment의 내용은 변하지 않는다. Lexical Environment Variable Environment를 그대로 복사해서 생성되며 환경 변경 사항이 실시간으로 반영된다. Variable En..

JS 2022.05.10

얕은 복사 깊은 복사

얕은 복사: 바로 아래 단계의 값만 복사하는 방법 -> 중첩된 객체에서 참조형 데이터가 저장된 속성을 복사할 때 주소 값만 복사한다 -> 원본과 사본이 같은 주소를 사용한다. -> 사본 바꾸면 원본도 바뀐다. 깊은 복사: 모든 아래 단계의 값들을 전부 복사하는 방법 객체를 복사해서 완전히 새로운 객체를 만들기 위해서는 기본형 데이터 타입이 나올 때 까지 참조형 데이터의 내부 속성을 복사해야 한다. 얕은 복사 const copyObject = function (target) { const result = {}; for (let prop in target) { result[prop] = target[prop]; } return result; }; const user = { name: "jaenam", url..

JS 2022.04.27

불변객체 만들기

객체지향 프로그래밍을 할 때 원본 객체를 유지해야할 필요가 있다. 변하지 않는 객체를 불변객체(immutable object)라고 한다. 자바스크립트에서 불변 객체를 만들려면 알아 둬야하는 것이 있다. var user = { name: "Jaenam", gender: "male", }; var changeName = function (user, newName) { var newUser = user; newUser.name = newName; return newUser; }; var user2 = changeName(user, "Jung"); console.log("user:", user, "user2:", user2); user라는 객체를 하나 만들고 user와 새로운 이름을 받아서 새로운 사용자 정보를..

JS 2022.04.25

ES? ES5?ES6?

다른 여러 기술들이 그렇듯이 자바 스크립트도 표준 문제가 있었던 듯 하다. 이를 정리하기 위해서 ECMA에서 표준을 정했고 이를 ECMA-262라고 한다. 이 표준에 새로운 버전이 업데이트 될 때 마다 ES(ECMA Script)1~4,5,6 또는 발행 연도를 붙여서 ES2015, 2016과 같이 부른다. 새로운 버전이 업데이트되면 새로운 함수가 추가되거나 에러수정, 생산성 향상을 위한 문법 수정 등이 있을 수 있으며 기타 여러 수정 사항이 있을 수 있다. 현재 최신 버전은 2020년에 나온 ES11이고 주로 사용되는 버전은 ES5와 ES6다. ES6에서 새로 추가된 기능 arrows classes enhanced object literals template strings destructuring def..

JS 2022.01.23

.filter()

filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다. 저장할 배열 = 테스트할 배열.filter(element(이름은 아무거나 설정 가능) => 조건(element로 요소를 받아서 테스트를 진행한다.); https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/filter Array.prototype.filter() - JavaScript | MDN filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다. developer.mozilla.org https://namu445.tistory.com/26 나누어 떨어지는 숫자 ..

JS/함수 2022.01.20

.push()

push() 메서드는 배열의 끝에 하나 이상의 요소를 추가하고, 새로운 길이의 배열을 반환합니다. 값을 넣을 배열.push(넣을 값) apply와 같이 사용하면 여러 배열을 합칠 수 있다. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/push Array.prototype.push() - JavaScript | MDN push() 메서드는 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환합니다. developer.mozilla.org https://namu445.tistory.com/12 없는 숫자 더하기 문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개..

JS/함수 2022.01.20

.includes()

includes() 메서드는 배열이 특정 요소를 포함하고 있는지 판별합니다. -> true : false로 응답합니다. 검색 대상.includes(검색 값 또는 배열, index(검색 시작 위치, 옵션입니다.)) https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/includes Array.prototype.includes() - JavaScript | MDN includes() 메서드는 배열이 특정 요소를 포함하고 있는지 판별합니다. developer.mozilla.org https://namu445.tistory.com/12 없는 숫자 더하기 문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 배열 nu..

JS/함수 2022.01.20

Math.trunc()

숫자의 정수 부분을 반환합니다. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math Math - JavaScript | MDN Math는 수학적인 상수와 함수를 위한 속성과 메서드를 가진 내장 객체입니다. developer.mozilla.org 사용 예시 https://namu445.tistory.com/11 문자열을 정수로 바꾸기 문제 설명 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루 namu445.tistory.com

JS/함수 2022.01.20