lessons 13. 타입 체크
·
프로그래밍/js
2023.02.08 자바스크립트 스터디 4회차 공부 사이트: https://poiemaweb.com/ 13. 타입 체크 자바스크립트가 타입 체크가 필요한 이유는 동적 타이핑에 의해 의도하지 않은 결과가 나올 수 있기 때문이다. // 어떤 타입의 값을 반환해야 하는지 명확하지 않다. function sum(a, b) { return a + b; } console.log(sum(12,5)); console.log(sum('hello ','javascript')); 1) typeof - typeof는 피연산자의 데이터 타입을 문자열로 반환한다. - null을 제외한 원시 타입을 체크하는 데는 문제가 없으나, 객체의 종류까지 구분하여 체크할 때는 사용하기 곤란하다. 피연산자 typeof null object 배..
lessons 12. 함수
·
프로그래밍/js
2023.02.08 자바스크립트 스터디 4회차 공부 사이트: https://poiemaweb.com/ 12. 함수 "어떤 작업을 수행하기 위해 필요한 문(statement)들의 집합을 정의한 코드 블록" 자바스크립트의 함수는 일급 객체이다. #일급 객체: 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체. 변수나 객체, 배열 등에 저장할 수 있고 다른 함수에 인자로서 전달될 수 있으며 함수의 반환값도 될 수 있음. [일급 객체 특징] - 무명의 리터럴로 표현 가능 - 변수, 자료구조에 저장 가능 - 함수의 파라미터에 전달 가능 - 반환값으로 사용 가능 1) 함수 정의 - 함수 선언문 - 함수 표현식 - Function 생성자 함수 ① 함수 선언문 함수 선언문 방식으로 정의한 함수는 functio..
lessons 11. 객체와 변경불가성(Immutability)
·
프로그래밍/js
2023.02.08 자바스크립트 스터디 4회차 공부 사이트: https://poiemaweb.com/ 11. 객체와 변경불가성(Immutability) 변경불가성이란, 객체 생성 이후 그 상태를 변경할 수 없는 디자인 패턴을 의미한다. lessons 10에서 포스팅했듯, 객체는 pass-by-reference 특성을 가지고 있다. 객체가 참조를 통해 공유되어 있다면 그 상태가 언제든 변경될 수 있기 때문에 문제가 될 수도 있다. 객체의 참조(주소)를 가지고 있는 변수가 객체를 변경하면, 참조를 공유하는 모든 곳에서 그 영향을 받기 때문이다. 의도치 않은 객체의 변경이 발생하는 원인의 대다수가 "레퍼런스를 참조한 다른 객체에서 객체를 변경하기 때문" 이다. 이러한 문제의 해결방법은 ①불변객체로 만들기 ②O..
lessons 10. 객체
·
프로그래밍/js
2023.02.05 자바스크립트 스터디 3회차 공부 사이트: https://poiemaweb.com/ 10. 객체 1) 객체(Object) - 원시 타입을 제외한 나머지 값들(함수, 배열, 정규표현식 등..)은 모두 객체 - 키(key)와 값(value)으로 구성된 프로퍼티(property)의 집합 - 객체 = 데이터를 의미하는 프로퍼티 + 데이터를 참조하고 조작할 수 있는 동작을 의미하는 메소드 - 상속을 구현하기 위해 프로토타입이라고 부르는 객체의 프로퍼티와 메소드를 상속받을 수 있다. ① 프로퍼티 - 프로퍼티 키와 프로퍼티 값으로 구성 - 프로퍼티 키로 유일하게 식별 가능 - 프로퍼티 키에 문자열/Symbol 값 이외의 값을 지정하면 암시적 형변환되어 문자열이 된다. - 프로퍼티 키 중복 선언 시 ..
lessons 9. 타입 변환과 단축 평가
·
프로그래밍/js
2023.02.05 자바스크립트 스터디 3회차 공부 사이트: https://poiemaweb.com/ 9. 타입 변환과 단축 평가 1) 타입 변환 ① 개발자에 의해 의도적으로 변환되는 경우 → 명시적 형변환(Explicit Coercion) 또는 타입캐스팅(Type casting) ② 자바스크립트 엔진에 의해 암묵적으로 자동 변환되는 경우 → 암시적 형변환(Implicit coercion) 또는 타입 강제 변환(Type Coercion) (이전 포스팅-암시적 형변환) 2) 암시적 형변환 자바스크립트 엔진은 표현식을 평가할 때 문맥(context)에 고려하여 암시적 형변환을 실행한다. 그래도 가급적이면 에러를 발생시키지 않도록 암시적 형변환을 하자. // 표현식이 문자형이어야 하는 컨텍스트 '10' + 2..
lessons 8. 제어문
·
프로그래밍/js
2023.02.05 자바스크립트 스터디 3회차 공부 사이트: https://poiemaweb.com/ 8. 제어문 1) 블록문 0개 이상의 문들을 중괄호로 묶은 것. 문의 끝에는 세미콜론을 붙이나, 블록문은 세미콜론을 붙이지 않는다. // 블록문 { var num = 10; console.log(num); } 2) 조건문 주어진 조건식의 평가 결과에 따라 코드 블록(블록문)의 실행을 결정함. 조건식 = boolean 값으로 평가될 수 있는 표현식 ① if else문 - 조건식의 평가 결과가 boolean이 아니라면 boolean 값으로 강제 변환되어 논리적 참/거짓을 판단 - 조건식을 추가하기 위해서 else if문 사용 - 코드블록 내 문이 하나라면 중괄호 생략 가능 - 대부분의 if..else문은 삼..
lessons 7. 연산자
·
프로그래밍/js
2023.02.01 자바스크립트 스터디 2회차 공부 사이트: https://poiemaweb.com/ 7. 연산자 1) 표현식 표현식(expression): 리터럴, 식별자, 연산자, 함수 호출 등의 조합. 평가되어 하나의 값을 만든다. 10 //리터럴 표현식 num //식별자 표현식 100 + 2 //연산자 표현식 square() //함수/메소드 호출 표현식 2) 문 문(statement): 자바스크립트 엔진에게 내리는 명령. 세미콜론으로 끝난다. (세미콜론 필수 아님) var x; //변수 선언문 x = 5; //할당문 function f1() {} //함수 선언문 if(x > 5) { ... } //조건문 for(var i=0;i
lessons 6. 데이터 타입과 변수
·
프로그래밍/js
2023.02.01 자바스크립트 스터디 2회차 공부 사이트: https://poiemaweb.com/ 6. 데이터 타입과 변수 1) 프로그래밍 - 변수 통해 값을 저장 - 연산자로 값을 연산, 평가 - 조건문과 반복문의 흐름제어 통해 데이터 흐름 제어 - 재사용할 구문은 함수 통해 집합 만들기 - 객체, 배열 등으로 자료를 구조화 메모리에 값을 저장하기 위해서는 확보할 메모리의 크기를 알아야 함. 값의 종류에 따라 메모리 크기가 다르기 때문이다. 1Byte로 표현할 수 있는 값의 총 개수는 256개(2^8) 4Byte로 표현할 수 있는 값의 총 개수는 4,294,967,296개(2^32). -2,147,483,648 ~ 2,147,483,647의 정수 표현 가능 그러나 자바스크립트는 동적 타입 언어임. ..