본문 바로가기

javascript/javascript 심화지식16

어휘적 환경(Lexical Environment) 클로저 어휘적 환경(Lexical Environment) closeure 클로저 함수와 렉시컬 환경의 조합 함수가 생성될떄 당시의 외부 변수를 기억 생성 이후에도 계속 접근 가능 let one; one = 1; function addOne(num) { console.log(one + num); // } addOne(5); //6 내부Lexical 환경 one = 1 // addOne : function 전역Lexical 환경 num = 5 ----------------------------------------------- function makeAdder(x) { return function (y) { return x + y; }; } // 5 const add3 = makeAdder(3); // x cons.. 2021. 7. 12.
나머지 매개변수, 전개구문 / (Rest parameters, Spread syntax) 나머지 매개변수, 전개구문 (Rest parameters, Spread syntax) ... 인수전달 function showname(name) { console.log(name); } showname("Mike"); // 'Mike' showname("Mike", "Tom"); // '? showName(); // undefined arguments 1. 함수로 넘어 온 모든 인수에 접근 2. 한수내에서 이용 가능한 지역 변수 3. length / index 4. array 형태의 객체 5. 배열의 내장 메서드 없음 (forEach, map) function showname(name) { console.log(arguments.length); console.log(arguments[0]); consol.. 2021. 7. 12.
구조 분해 할당 (Destructuring assignment) 구조 분해 할당 구문은 배열이나 객체의 속성읇 분해해서 그 값을 변수에 담을 수 있게 하는 표현식 let [x, y] = [1, 2]; // x = 1, y = 2 let users = ["Mike", "Tom", "jane"]; let [user1, user2, user3] = users; user1 === users[0]; user2 === users[1]; user3 === users[2]; let str = "Mike-Tom-Jane"; let [user1, user2, user3] = str.split("-"); // ["Mike", "Tom", "jane"] 각각 할당된다 let [a, b, c] = [1, 2]; a = 1; b = 2; c = undefined; let [a = 3, b =.. 2021. 7. 12.
생성자함수 객체 리터럴 let user = { name: "mike", age: 30, }; 생성자 함수 첫글자는 대문자로사용 function User(name, age) { this.name = name; this.age = age; } new 연산자를 이용해 선언 let user1 = new User("Mike", 30); let user2 = new User("jane", 22); let user3 = new User("Tom", 17); function User(name, age) { // this = {} this.name = name; this.age = age; // return this; } function User(name, age) { this.name = name; this.age = age; .. 2021. 7. 12.