JavaScript 개념

iterable 객체란반복 가능한(iterable, 이터러블) 객체는 배열을 일반화한 객체이다. 이터러블 이라는 개념을 사용하면 어떤 객체에든 for..of 를 사용할 수 있다.배열은 대표적인 이터러블이다. 배열 외에도 다수의 내장 객체가 반복 가능하다. 문자열 역시 이터러블의 예시이다.Symbol.iterator직접 이터러블 객체를 만들어보자예시의 객체 range는 숫자 간격을 나타낸다.let range = { from : 1, to : 5}// 아래와 같이 for..of가 동작할 수 있도록 하는 게 목표입니다.// for(let num of range) ... num=1,2,3,4,5동작 원리for…of가 시작하자 마자 Symbol.iterator를 호출한다. Symbol.iterator는 반드시 이..
템플릿 리터럴작은 따옴표와 큰 따옴표의 기능상 차이는 없지만 백틱에는 특별한 기능이 있는데 바로 표현식을 사용 가능하다는 것이다. 이런 방식을 바로 템플릿 리터럴이라고 이야기 한다.function sum(a, b){ return a + b}alert(`1 + 2 = ${sum(a, b).`}; // 1 + 2 = 3.추가로 백틱을 이용하면 문자열을 여러줄에 걸쳐 작성할 수도 있다.let guestList = `손님: * John * Pete * Mary`;alert(guestList); // 손님 리스트를 여러 줄에 걸쳐 작성함특수기호줄바꿈문자라고 불리는 특수기호 \\n을 사용하면 큰따옴표나 작은따옴표로도 여러줄 문자를 만들 수 있다.let guestList = "손님:\\n * John\\n * Pet..
숫자형 종류일반적인 숫자는 '배정밀도 부동소수점 숫자(double precision floating point number)'로 알려진 64비트 형식의 IEEE-754에 저장됩니다. 튜토리얼 전체에서 이 형식을 사용하여 숫자를 표현할 예정입니다.임의의 길이를 가진 정수는 BigInt 숫자로 나타낼 수 있습니다. 일반적인 숫자는 253이상이거나 -253이하일 수 없다는 제약 때문에 BigInt라는 새로운 자료형이 만들어졌습니다. BigInt는 아주 특별한 경우에만 사용되므로, 별도의 챕터 BigInt에서 자세한 내용을 다루겠습니다.숫자를 입력하는 다양한 방법10억을 입력하는 방법1let billion = 1000000000;2.숫자 옆에 ‘e’를 붙이고 0의 개수를 그 옆에 붙여주면 숫자를 줄일 수 있다...
원시값을 객체 처럼 사용하기문제점문자열이나 숫자와 같은 원시값을 다뤄야하는데 메서드를 사용하면 작업을 수월하게 할 수 있을 것 같다.원시값은 빠르고 가벼워야한다.해결원시값은 원시값 그대로 남겨둔다문자열, 숫자, 불린, 심볼의 메서드와 프로퍼티에 접근 할 수 있도록 언어 차원에서 허용한다.이를 가능하게 하기 위해서 원시 래퍼 객체를 만들어준다. 이 객체는 곧 삭제된다.래퍼 객체래퍼 객체는 원시 타입에 따라서 종류가 다양하다. 각 래퍼 객체는 원시 자료형의 이름을 그대로 사용해 String, Number, Boolean, Symbol 라고 부른다. 래퍼 객체 마다 제공하는 메서드 역시 다르다.예시let str = "Hello";alert( str.toUpperCase() ); // HELLO문자열 str은 ..
객체객체혀 자료형은 원시형과는 달리 다양한 데이터를 담을 수 있다. 키로 구분된 데이터 집합이나 복잡한 개체를 저장할 수 도 있다.객체 작성객체는 중괄호를 통해서 만들 수 있고 ‘키(key) : 값(value)’ 쌍으로 구성 된 프로퍼티를 여러개 넣을 수 있는데 key에는 문자형, value에는 거의 모든 자료형이 허용된다. 프로퍼티 키는 ‘프로퍼티 이름’ 이라고도 부른다.빈 객체를 만드는 방법은 두가지가 있다.let user = new Object() // 객체 생성자 문법let user = {}; // 객체 리터럴 문법, 주로 사용리터럴과 프로퍼티중괄호 안에는 ‘키:값’ 쌍으로 구성된 프로퍼티가 들어간다.let user = { // 객체 name: "John", // 키: "name", ..
테스트의 필요성어떤 코드를 작성하고 그 코드가 원하는 결과와 같은 결과인지를 알아보기 위해서 코드를 실행하고 실행 결과가 기대했던 결과와 다를 경우에 코드를 수정 하고, 또 실행하고를 반복한다. 하지만 이렇게 코드를 ‘재실행’ 하는 것은 상당히 불완전하다코드를 수동으로 ‘재실행’ 하면서 테스트를 하면 무엇인가 놓치기 쉽다.예를 하나 들어보자f(1)이 제대로 동작하는가 ⇒ yesf(2)가 제대로 동작하는가 ⇒ Nof(2) 수정f(2)가 제대로 동작하는가 ⇒ Yesf(2)가 제대로 동작하면 끝일까? 그건 아니다. 왜냐하면 f(1)이 제대로 동작하는지 확인을 못했기 때문이다. 개발자는 무엇인가 만들때 머릿속에 수많은 유즈케이스를 생각하며 코드를 작성해야 하는데 코드를 변경할 때마다 모든 유즈케이스를 상기하면서..
ron_nie
'JavaScript 개념' 카테고리의 글 목록