To infinity/Javascript 이론
-
[Javascript 200] SymbolTo infinity/Javascript 이론 2021. 6. 27. 14:05
symbol은 리터럴표기법으로 값을 생성할 수가 없고 symbol함수로만 값을 생성할 수 있다. const mysymbol = symbol() 마치 생성자함수같아 보이지만 생성자함수는 new 연산자와 함께 호출해야한다. 생성자함수 또는 클래스는 값으로 객체(인스턴스)가 생성되지만 심벌 값은 원시값이다. 선택적으로 문자열을 인수로 전달할 수 있지만 설명으로 디버깅용도로만 쓰이지 심벌값 생성에 어떤 영향도 주지 않는다. symbol은 암묵적으로 문자열이나 숫자로 변환되지 않는다. 단, 불리언타입으로는 암묵적으로 변환이 된다. 그럼 대체 symbol은 뭘 하는거지? 어떤 값이 들어가는거지? 2. 함수 symbol.for('문자열(key)') - 인수로 전달받은 문자열을 키로 사용해서 키와 심벌 값의 쌍들이 저..
-
[Javascript 200] 배열과 객체 (ES6기능)To infinity/Javascript 이론 2021. 6. 26. 10:37
단축 속성명 속성을 빠르게 가져오는 방법 //단축속성명 ES6 var Firstname2 = 'Buzz' var Lastname2 = 'Lightyear' var members2 = {} var addFamily2 = function(age, name, role){ this.members[role] = { age: age, name: name } } var getHeadcount2 = function(){ return Object.keys(this.members).length } // 각각의 변수로 선언된 변수값들을 하나의 객체로 모으자! var obj_toystory2 = {Firstname2, Lastname2, members2, addFamily2, getHeadcount2} console.log(..
-
[Javascript 200] 배열과 객체To infinity/Javascript 이론 2021. 6. 26. 09:58
배열과 객체는 비슷한 친구들이다. 생성방법 let arr_toystory = [ 'Buzz', 'Woody', 'Jessie'] let obj_toystory = { Firstname: 'Buzz', Lastname: 'Lightyear', members : {}, addFamily: function(age, name, role){ this.members[role] = { age: age, name: name }; }, getHeadcount: function(){ return Object.keys(this.members).length; } }; 배열 let arr = [ 값 , 값 ] 객체 let ojb = { 키:값 , 키:값 } - 둘 다 콤마(',')로 각 값을 구분한다. 즉, 형식이 비슷하다. ..
-
[Javascript] 제어문To infinity/Javascript 이론 2021. 6. 16. 22:05
2021.06.16 Ver.1 백준 단계별 코딩을 하고있는데 내가 제어문 부분을 생활코딩 강의로만 듣고 책으로 보진 않아서 해당 개념을 좀 헤갈려한다는 것을 알게 되었다. 그래서 if문을 풀고있지만 코드를 짜면서 드는 궁금증을 개념정의를 통해 먼저 해결하고자 오늘은 제어문을 학습하기로 한다. 1. 블록문 (코드블록) - 0개 이상의 문을 중괄호{}로 묶은 것 - 블록문은 언제나 문의 종료를 의미하는 자체 종결성을 가지므로 블록문의 끝에는 세미콜론을 붙이지 않는다. 2. 조건문 - 주어진 조건식의 평가결과에 따라 코드블록의 실행을 결정함. - 조건식은 불리언 값으로 평가될 수 있는 표현식 - if (조건식){코드블록} - if else, else는 옵션임 (else가 옵션이었구나) - 코드블록 내의 문이 ..
-
[Javascript] 함수To infinity/Javascript 이론 2021. 6. 14. 23:52
2021.06.11 ~ 12, Ver.1 1. 함수 함수선언문, 함수표현식 2. 함수호출 - 매개변수: 함수 정의 시 선언, 함수몸체 내부에서 변수와 동일하게 취급됨. - 함수호출: 표현식 - 스코프 result = undefined add 함수호출 함수몸체 내부 x=undefined, y=undefined 런타임 환경 실행 x=2, y=5 x + y = 7 result = 7 - 매개변수의 개수와 인수의 개수가 일치하는지 체크하지 않기에 에러가 발생하지 않음 단지, 인수가 할당되지 않은 매개변수의 값음 undefined임. so, 2 + undefined가 되서 NaN가 반환됨 초과된 인수는 함수계산시에는 무시되지만 암묵적으로 arguments 객체의 프로퍼티로 보관됨 [참고] argument객체 : ..
-
[Javascript] 함수 호출방식과 this 바인딩 (related to 생성자 함수)To infinity/Javascript 이론 2021. 6. 14. 23:50
2021.06.14 Ver.1 생성자 함수 보다가 this로 넘어가서 내용이 갑자기 본문 느낌이다. 그래서 생성자 함수랑 연계해서 보면 좋을 듯. 함수 호출방식과 this 바인딩 - this 바인딩은 함수 평가시점이 아닌 함수 호출시점에 결정됨. 호출 시 상위스코프를 찾아감. 상위스코프가 없을 시 자기자신에게 돌아오겠지?? 1. 일반함수호출 - this: 객체 자신의 프로퍼티나 메서드를 참조하기 위한 자기참조변수 그렇기에 일반적으로 객체 메서드 내부나 생성자 함수 내부에서만 의미가 있음. (그래서 this.변수가 생성자함수만드는 식인가봐) 그래서 전역함수는 물론이고 중첩함수를 일반함수로 호출하면 객체를 생성하지 않기 때문에 this는 의미가 없음. 메서드 내에서 정의한 중첩함수도 일반함수로 호출하면 중첩..
-
[Javascript] 호이스팅 Hoisting and 변수키워드 var, let, const (feat. 둘리)To infinity/Javascript 이론 2021. 6. 13. 12:30
20201.06.13 Ver1 1. 호이스팅 Javascript에는 다른 언어와 다른 특이한 기능이 있는데 바로 호이스팅이라는 것이다. 호이스팅은 선언문 전에 실행 컨텍스트 환경이 세팅되고 초기화가 진행되는 현상이다. 그래서 만약에 아래코드를 실행하면 아래와 같은 결과가 나온다. let hoist = 1; { console.log(hoist); // access불가 let hoist = 2; } 결과: 만약 호이스팅이 일어나지 않으면 지역스코프의 hoist 값인 1을 참조해서 1의 결과를 내야 하지만 해당 결과는 access할 수 없다고 뜬다. 즉, 호이스팅이 일어나서 해당 함수코드 내에 실행콘텍스트가 생긴 것이다. 즉, 자바스크립트에서 모든변수는 호이스팅이 발생한다. 2. 변수키워드 var, let, ..