목록My footPrints 🔥🔥🔥 (311)
Daehyunii's Dev-blog
오늘 공부한 내용은 String 생성자 함수에 대해서 배웠다. String 생성자 함수는 Number 생성자 함수와 마찬가지로 조금은 쉬어가는 타임이 아닌가 싶다. 우선 String 객체에 대해서 가장 중요한 것은 유사 배열 객체이자 이터러블이라는 특징을 가지고 있다는 것을 정확하게 알고 있어야 할 것 같다. 유사 배열 객체로 length 프로퍼티를 가지며, 인덱스를 통해 문자열의 각 문자들에 접근 할 수 있다. 이터러블에 대해서는 아직 자세하게 배우지는 않았지만 for..of문을 통해 반복이 가능하다는 것 정도 알고 있다. 하지만 문자열은 원시타입의 값이므로 인덱스를 통해 문자열의 문자를 변경하려고 하더라도 변경되지 않는다. 이러한 유사 배열 객체로서의 특징은 원시 값 중 문자열만의 특징이고, 이러한 ..
표준 빌트인 객체인 String은 원시 타입인 문자열을 다룰 때 유용한 프로퍼티와 메서드를 제공한다. 32.1 String 생성자 함수 표준 빌트인 객체인 String 객체는 생성자 함수 객체다. 따라서 new 연산자와 함께 호출하여 String 인스턴스를 생성할 수 있다. String 생성자 함수에 인수를 전달하지 않고 new 연산자와 함께 호출하면 [[StringData]] 내부 슬롯에 빈 문자열을 할당한 String 객체를 생성한다. const strObj = new String(); console.log(strObj); // String length: 0 String 생성자 함수의 인수로 문자열을 전달하면서 new 연산자와 함께 호출하면 [[StringData]] 내부 슬롯에 인수로 전달받은 문자..
오늘은 Number 생성자 함수에 대해서 배웠다. 사실 오늘은 조금 쉬어가는 타임이 아니었다 싶긴 하다. 하지만 완전히 느낄점이 없었던 것은 아니었다. 자바스크립트는 프로토타입 기반의 객체지향 프로그래밍 언어라는 것을 여기서도 느낄 수 있는 부분이 아닌가 하고 생각이 들었다. 왜냐하면 숫자 값은 사실 원시타입의 값으로 변경 불가능한 값인데, Number라는 생성자 함수를 빌트인 객체로 넣어놨고, 이를 통해 숫자 객체를 만들 수 있게 해놓은 것 자체가 객체를 지향하고 있다는 뜻이 아닐까 하고 말이다. 또 숫자와 관련된 내용들은 코드를 작성할때 제어문에 있어서 조금 더 유용하게 활용할 수 있을것 같다는 생각이 들었다. 물론 지금은 프로토타입 메서드와 정적 메서드들에 익숙하지 않고 활용방법도 잘 알지 못하지만..
표준 빌트인 객체인 Number는 원시 타입인 숫자를 다룰 때 유용한 프로퍼티와 메서드를 제공한다 28.1 Number 생성자 함수 표준 빌트인 객체인 Number 객체는 생성자 함수 객체다. 따라서 new 연산자와 함께 호출하여 Number 인스턴스를 생성할 수 있다. Number 생성자 함수에 인수를 전달하지 않고 new 연산자와 함께 호출하면 [[Numberdata]] 내부 슬롯에 0을 할당한 Number 래퍼 객체를 생성한다. const numObj = new Number(); console.log(numObj); //Number {0} Number 생성자 함수의 인수로 숫자를 전달하면서 new 연산자와 함께 호출하면 [[Numberdata]] 내부 슬롯에 인수로 전달받은 숫자를 할당한 Numbe..
오늘은 중요한 객체 중 하나인 배열에 대해서 배웠다. 배열은 파이썬에서 한 번 공부를 해서 그런지 상대적으로 그렇게 어렵게 느껴지지는 않았다. 또한 앞에서 배운 객체와 관련된 내용들을 보고 왔기에 표현만 다르게 했을뿐 순서와 길이라는 특징적인 부분을 제외한다면 객체와 크게 다르다고 느껴지지는 않았다. 오히려 수 많은 프로퍼티 메서드와 정적 메서드들이 많이 곤욕스러웠던것 같았다. 이걸 외운다는것은 현실적으로 매우 어렵게 느껴졌고, 처음에는 스트레스를 받았으나 룸메이트인 개발자 지인에게 물어보니 지금 당장은 크게 신경쓸 부분이 아니라는 조언을 얻고 개념을 익히는데 전념했다. 배열을 보면서 사실 딱히 느끼는 점은 없었다. 다만 자바스크립트의 배열은 일반적으로 말하는 배열이 아니라는 것은 다시 말하면 다른 언어..
27.1 배열이란? 배열은 여러 개의 값을 순차적으로 나열한 자료구조다. 배열이 가지고 있는 값을 요소라고 부른다. 자바스크립트의 모든 값은 배열의 요소가 될 수 있다. 배열의 요소는 배열에서 자신의 위치를 나타내는 0이상의 정수인 인덱스를 갖는다. 인덱스는 배열의 요소에 접근할 때 사용한다. 인덱스는 0부터 시작한다. 요소에 접근할 때는 대괄호 표기법( [ ] )을 사용한다. 대괄호 내에 접근하고 싶은 요소의 인덱스를 지정한다. 배열은 요소의 개수, 즉 배열의 길이를 나타내는 length 프로퍼티를 갖는다. 배열은 인덱스와 length 프로퍼티를 갖기 때문에 for 문을 통해 순차적으로 요소에 접근할 수 있다. 자바스크립트에서 배열은 객체 타입의 값이다. const arr = ['apple','bana..
오늘은 ES6 버전부터 등장한 함수에 대해서 배웠다. 대표적으로 ES6 메서드 축약 표현과 화살표 함수에 대해서 배웠고, 가변 인자 함수를 구현하는 Rest 파라미터와 매개변수 기본값에 대해서도 배웠다. 우선 함수를 명확하게 구분지어서 문법을 달리하는 것은 굉장히 긍정적인 발전이라고 생각한다. 사실 공부를 하는 입장에서도 굉장히 헷갈리는 부분이었다. 함수 자체가 호출되는 방식에 따라 일반 함수도 되었다가 메서드도 되었다가 생성자 함수도 되었기 때문에 혼란을 많이 야기했었다. 그러나 메서드 축약 표현을 통해서 개념들을 명확히 할 수 있어서 너무 좋았다. 일반적으로 메서드라고 부르는 함수들은 생성자 함수로 사용할 이유가 거의 없을텐데도 constructor이고 prototype프로퍼티를 가지며 프로토타입을 ..
26.1 함수의 구분 ES6 이전까지 자바스크립트의 함수는 별다른 구분 없이 다양한 목적으로 사용되었다. 즉, 자바스크립트의 함수는 일반적인 함수로서 호출할 수도 있고, new 연산자와 함께 호출하여 생성자 함수로서 호출할 수도 있으며, 객체에 바인딩되어 메서드로서 호출할수도 있다. var foo = function (){ return 1; } // 일반 함수로서 호출 foo(); // 1 반환 // 생성자 함수로서 호출 new foo(); // foo {} 생성 // 메서드로서 호출 var obj = { foo : foo }; obj.foo(); // 1 반환 이처럼 ES6 이전의 함수는 사용 목적에 따라 명확히 구분되지 않는다. 다시 말해, ES6 이전의 모든 함수는 callable 이면서 const..