반응형 Archive188 원시값의 메서드 원시값에 대한 흥미로운 사실을 알게되었다. 객체와 원시값의 차이로 한다면 대표적으로 객체에는 함수 프로퍼티를 추가할 수 있다는 점이고, 메서드라고 부른다. 그런데 문자나 숫자형에서 toUpperCase() 나 toFixed() 와같은 메서드들을 사용할 수 있는데 어떻게 가능한걸까? 먼저 객체의 특성은 고유한 프로퍼티와 메서드를 가지게되는데, 이런 기능들은 시스템 자원이 많이소모된다는 단점이있다. 그래서 원시값은 가볍게 유지하면서도 메서드를 사용하려면 다른방법이 필요했는데, 원시값이 메서드나 프로퍼티에 접근하게 해주는 특별한 객체인 Object Wrapper(원시 래퍼 객체)를 만들어준다. 그리고 이 객체는 곧바로 삭제된다. 래퍼객체는 원시타입마다 종류가 다양한데 String, Number, Boolean.. 2022. 8. 29. new 연산자와 생성자 함수 태초의 자바스크립트는 클래스가 존재하지 않았다. 그래서 생성자함수와 prototype 으로 객체지향을 구현하곤 했었다. 그래서 유사한 객체를 만들기위해서 new 키워드와 생성자 함수를 함께 사용한다. function User(name) { this.name = name; this.isAdmin = false; } const user = new User("kong"); console.log(user.name); console.log(user.isAdmin); 생성자 함수라는것에는 기술적인 차이는 없다. 다만 두가지의 관례를 따를 뿐이다. 1. 함수이름은 대문자로 시작한다. 2. 반드시 'new' 연산자를 붙여 실행한다. 코딩에 마법은 없다고 했기에, 새로운 키워드 new 가 나왔다. 그럼 new 는 어떤 .. 2022. 8. 29. 객체 {} 중괄호를 통해서 객체를 생성하는것을 객체 리터럴 (Object literal) 이라고 한다. 다른 언어와의 차이라고하면 class 를통해서 객체를 생성하는 것이아니라, 리터럴로 쓸 수있다는게 편했던 경험이 있다. 프로퍼티를 읽는데는 두가지 방법이있다. 1. 점 표기법 (dot notation) 2. 대괄호 표기법 (square bracket notation) 점 표기법은 유효한 변수 식별자일 때만 가능하다. 유효한 변수라는 것은 숫자로시작하지않고, $, _ 를 제외한 특수문자가없는 문자열을 의미한다(변수명명 조건) 대괄호 표기법으로만 접근해야하는 경우는 프로퍼티 명에 공백이 있을경우 이다. 참고로 객체의 키는 string 과 symbol 만 가능하다. symbol은 간단히말하면 고유한 식별자로써 사.. 2022. 8. 29. 다시보는 babel 과 polyfill 자바스크립트는 끊임없이 변하는 언어이다. ECMAScript의 새로운 버전이 출시되면서 새로운기능 출시와 기존의 기능 변경이 이루어진다. 특히나 ES5 에서 undefined을 가리키는 this는 window 객체를 가르켰는데, 그대로 undefined으로 가리키도록 변경사례가 있다. 이렇게 언어자체가 발전하면서 변경되고 추가되는 사항은 언어가 변하는것이지 브라우저가 그대로 지원한다는 소리는 아니다. 즉, javascript와 브라우저 는 별개로 생각해야한다. 만약에 ES2022 문법을 1980년 브라우저에 돌린다고 생각한다면, 돌아갈까? 언어는 40년이 지나 새로운 기능이 엄청나게 추가됬는데, 옛날 브라우저에서는 그런 명세가 없기 때문에 원하는 대로 동작하지 않을 수 있다. 그래서 최신의 javasc.. 2022. 8. 28. 1년10개월 만에 다시보는 Javascript 기초 뭐든지 처음 학습할 때는 많은 양의 정보가 방해가되고, 흡수도 되지 않음을 느낀다. 그래서 보통 getting start 가 서두에 있고, 이후에 상세한 명세서가 나오는게 아닐 까싶다. 최근에 라이브러리, 프레임워크를 공부하다보니 기초가 또 부족한느낌을 받았다. 이제는 많은 배경지식이 쌓여서, javascript 기초를 다시보면, 이전에는 보이지 않았던 것들이 보일거같아서 모던 자바스크립트를 정주행 해봤다. 아리송했던 개념들을 다시잡을 수 있었고, 초기 설계 실수로 해결하지 못하고 잔재하는 오류사항들이 몇몇있어서, javascript가 쉬우면서도 어려운 언어가 아닐가 싶다. 그래도 ECMAscript가 계속해서 발전하면서 새로운 문법이 추가된 것을 생각하면 javascript의 문제들을 해결하는 역사를 .. 2022. 8. 28. 3시간동안의 과제 테스트를 끝내고 주기적으로 데브매칭이 이루어지는데, 작년에는 신청해놓고, 일정이생기는 바람에 응시를 못했었다. 드디어 이번에 한번 응시해보게 되었는데, 나의 난독증이 도져서 과제형인줄 모르고 그냥 열심히 알고리즘 공부하다가 쳤다. 덕분에 나의 평소실력을 검증해볼 기회였다. 웹개발자의 본질인 HTML, CSS, JS 만을 다루어, SPA를 요구사항에 맞도록 구현하는 내용이었다. 분명 한번쯤 SPA를 개발해보고자 했었는데, 기어코 한번도 못해보다가 시험으로 처음해본다. 근데그렇게 어렵게 느껴지지는 않았다. 핵심은 페이지를 하나로 유지하면서 커스텀한 라우팅 시스템을 만들어야하는 것이었고, 그에 맞춰 화면을 렌더링 시켜주면 되었다. 컴포넌트를 만들기위해서 어떻게 동적으로 생성해낼까 고민을 한 30분했던 것 같다. JSX가 그렇.. 2022. 8. 27. 이전 1 2 3 4 5 6 7 8 ··· 32 다음 반응형