프로그래밍/Js
-
Javascript-타입프로그래밍/Js 2021. 2. 12. 19:53
1. 타입의 사전정의는 다음과 같다. 어떤 값이 다른 값과 구분되도록 고유한 내부 특성의 집합 여기서 유심깊게 봐야하는 단어가 값이다. 변수가 타입을 갖고 있는 것이 아니라,(변수에는 타입이 없다) 변수에 할당된 값이 타입을 가지고 있다. js는 타입강제를 하지 않는다. 즉 변수의 값이 처음 할당된 값과 동일한 타입일 필는 없다. 2. js의 내부 타입에는 총 7가지가 있다. null undefined String Number boolean Symbol Object 각각의 타입을 살펴보자. typeof null ⇒ 'object' typeof undefined ⇒ 'undefined' typeof true ⇒ 'boolean' typeof 12 ⇒ 'number' typeof '12' ⇒ 'string'..
-
JS-this, call, apply, bind프로그래밍/Js 2021. 1. 17. 13:04
2021-01-17 1.this - 함수가 호출 될 때 호출한 객체를 가리킨다. 위의 함수를 호출하는 객체는 user이다 따라서 this는 user를 가르킨다. 반면, 같은 함수인 user.callName 이더라도 호출할 당시(whoAmI()), 객체가 윈도우이기 때문에 user의 name을 못찾는다. 2.call, apply, bind - 함수가 참조할 객체를 지정해 줄 수 있는 함수이다. call 함수를 통하여 update 메서드가 참조할 객체(위에서는 mike), 메서드 매개변수(1999, "singer")을 지정했다. apply 함수는 함수의 매개변수로 전달되는 방식이 배열이라는 점 빼고 call과 같은방식이다. 다음은 bind 사용예제다. bind를 사용하면 해당함수의 객체를 영구히 지정해준다.
-
JS-closure프로그래밍/Js 2021. 1. 15. 11:39
2021-01-15 1.closure ㄱ.내부함수가 외부함수의 맥락(어휘적환경(lexical 환경))에 접근할 수있는 것을 가르킨다. ㄴ.함수와 렉시컬(어휘적) 환경의 조합 => 이 환경은 클로저가 생성된 시점의 유효범위 내에 있는 모든 지 역변수로 구성된다. ㄷ.함수가 생성될 당시의 외부 변수를 기억 ㄹ.내부 함수에서 외부 함수 변수에 접근할 수 있다. ㅁ.생성 이후에도 계속 접근가능 위 사진의 생성되어있는 Lexical 환경을 살펴보자 전역 Lexical 환경 (makeAdder: function, add3: function) ↑(참조) makeAdder Lexical 환경(x: 3) ↑(참조) 익명함수 Lexical 환경(y: 2) 익명함수Lexical에서부터 전역 Lexical 함수까지 순차적으로..
-
JS-arguments, Rest parameters, Spread syntax프로그래밍/Js 2021. 1. 14. 12:23
1.arguments - 함수에 전달된 인수에 해당하는 Array 형태의 객체(단, forEach, Map 등과 같은 배열의 내장함수가 없음). 가변 인수가 전달되는 함수에 유용하다. 만약 함수에 전달되 인수의 수를 고정시키기 위해 arguments.length를 사용해서 결정하자 ES6 호환 코드를 작성 중이라면 되도록 나머지 매개변수(Rest parameters)구문을 사용하자. 2.Rest parameters - 함수에 전달된 정해지지 않은 인수를 배열로 나타낼 수 있다. 함수의 마지막 파리미터 앞에 ... 을 사용해서 여러개의 인수를 배열로 만들수 있다. 주의 해야하는 것은 마지막 파라미터만 "Rest 파라미터" 가 될 수 있다. 3.Spread syntax - 배열이나 문자열과 같이 반복 가능한..
-
Class vs Object프로그래밍/Js 2020. 8. 3. 20:24
javascript는 프로토타입 기반으로 객체 생성을 지원하는 동적 스크립트 언어이다. * 프로토타입 : 달리 클래스를 명확히 정의하지 않아도 되며, 속성과 메서드를 다른 클래스의 인스턴스나 빈 객체에 추가하는 작업을 덜 수 있는 프로그래밍 스타일 1.class template declare once no data in ex) 붕어빵틀 2.class instance of a class created many times data in ex) 크림 붕어빵, 팥 붕어빵 3. class declarations class Person { constructor(name, age) { this.name = name; this.age = age; } speak() { console.log(`${this.name} : ..