본문 바로가기

부트캠프교육중/JavaScript63

[JavaScript] ES6주요문법 #Spread문법 -주로 배열을 풀어서 인자로 전달하거나, 배열을 풀어서 각각의 요소로 넣을때 사용한다. function sum(x, y, z) { return x + y + z; } const numbers = [1, 2, 3]; sum(...numbers) // 어떤값을 리턴할까? // 6 #rest문법 -파라미터를 배열의 형태로 받아서 사용할수있다. 파라미터 개수가 가변적일때 유용하다. function sum(...theArgs) { return theArgs.reduce((previous, current) => { return previous + current; }); } sum(1,2,3) // 질문: 어떤 값을 리턴하나요? // 6 sum(1,2,3,4) // 질문: 어떤 값을 리턴하나요? /.. 2023. 1. 3.
[JavaScript] 클로저 "함수와 함수가 선언된 어휘적(lexical)환경의 조합을 말한다. 이 환경은 클로저가 생성된 시점의 유효범위 내에 있는 모든 지역변수로 구성된다." 클로저함수: 외부함수의 변수에 접근할수 있는 내부함수 ★★★★★ 클로저함수: 외부함수의 컨텍스트에 접근할수 있는 내부함수 함수내에서 다른함수(내부함수)가 리턴이 되면 이 함수를 클로저함수라고 부르고 외부함수에 있는 변수에 접근 가능하구나!!! let add = function(x) { let sum = function(y) { return x+y; } return sum; } add: 클로저함수 sum: 그 주변 뭔가 클로저: 주변에 있는 문자까지 기억한다는 의미로 생각하면 된다 1. 함수를 리턴하는 함수이다. 함수를리턴하는함수 그림 추가!!! 어휘적환경:.. 2023. 1. 2.
[JavaScript] 스코프 스코프(Scope) 변수의 값(변수에 담긴 값)을 찾을 때 확인하는 곳을 말한다. 변수의 유효범위/ 변수에 접근할수있는범위/ 변수 접근 규칙에 따른 유효범위 무언가 제한된 범위를 잘 들여다보기 위해 사용되는 개념이라고 추측할수있다. let username = 'kimcoding'; if (username) { let message = `Hello, ${username}!`; console.log(message); // ? } console.log(message); // ? => 순서대로 출력되는 결과는? "Hello, kimcoding!" ReferenceError -> 4번째 줄에서 message를 출력할때는 3번째줄의 username을 바깥 스코프에서 가져왔으므로 정상적으로 출력된다. 그러나, 6번째.. 2023. 1. 2.
[JavaScript] 원시자료형과 참조자료형 문제 let first = [10, 20, 30, 40]; let second = first; second[0] = 5; -> first = [10, 20, 30, 40] second = [10, 20, 30, 40] -> first = [5, 20, 30, 40] second = [5, 20, 30, 40] -> second는 first가 가지고 있는 주소를 그대로 가지고 있다 주소를 공유하고 있기 때문에 first도 똑같이 변경된다 let x = 2; let y = x; y = 3; x는? => x는 2이다. -> 원시자료형을 할당하는 경우 그 값 자체를 변수에 할당한다. 그 값을 복사하여 변수에다가 저장한다고 생각하면 된다. 그래서 변수 x에 영향을 미치지 않는다. let x = { foo: 3 }; l.. 2023. 1. 2.