프로퍼티 어트리뷰트 자바스크립트 엔진은 프로퍼티를 생성할 때 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의한다. 프로퍼티 데이터 프로퍼티 키와 값으로 구성된 일반적인 프로퍼티 접근자 프로퍼티 자체적으로는 값을 갖지 않고 다른 데이터 프로퍼티의 값을 읽거나 저장할 때 호출되는 접근자 함수로 구성된 프로퍼티 *프로토타입 : 어떤 객체의 상위(부모) 객체의 역할을 하는 객체 🎈 프로퍼티 정의 프로퍼티의 어트리뷰트를 명시적으로 정의하거나, 재정의하는 것을 의미한다. 🎈 객체 변경 방지 객체는 변경 가능한 값이다. 자바스크립트는 객체의 변경을 방지하는 다양한 메서드를 제공한다. 🔔객체 확장 금지🔔 확장이 금지된 객체는 프로퍼티 추가가 금지된다. 🔔객체 밀봉🔔 밀봉된 객체는 읽기와 쓰기만 가..
var로 선언한 변수의 문제점 변수 중복 선언 허용 함수 레벨 스코프 변수 호이스팅 📙 변수 중복 선언 허용 var x = 1; var y = 1; var x = 100; var y; // 초기화 없는 변수 무시 console.log(x); // 100 console.log(y); // 1 동일한 이름의 변수가 이미 선언되어 있는 것을 모르고 값을 할당했다면 의도치 않게 값이 변경되는 부작용이 발생한다. 📙 함수 레벨 스코프 var x = 1; if(true) { var x = 10; // 전역 변수 } console.log(x); // 10 함수 레벨 스코프는 전역 변수를 남발할 가능성을 높인다. 이로 인해 의도치 않게 전역 변수가 중복 선언되는 경우가 발생할 수 있다. 📙 변수 호이스팅 console..
변수의 생명 주기 변수는 생물과 유사하게 생성되고 소멸되는 생명 주기(life cycle)가 있다. *생명 주기가 필요한 이유 생명 주기가 없다면 메모리 공간을 영원히 점유한다. 지역 변수의 생명 주기 지역 변수의 생명 주기는 함수의 생명 주기와 일치한다. function foo() { var x = 'local'; console.log(x); // local return x; } foo(); console.log(x); // ReferenceError: x is not defined 함수 foo()가 종료했기 때문에 위 코드는 애러가 뜬다. 함수의 종료와 동시에 지역 변수 x의 삶도 마감하기 때문이다. *호이스팅은 스코프를 단위로 동작한다 전역 변수의 생명 주기 전역 변수의 생명 주기는 애플리케이션의 ..
스코프 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위를 말한다. 스코프 = 식별자가 유효한 범위 스코프가 필요한 이유 스코프라는 개념이 없다면 같은 이름을 갖는 변수는 충돌을 일으키므로 프로그램 전체에서 하나밖에 사용할 수 없다. var x = 'global'; function foo() { var x = 'local'; console.log(x); } foo();//local console.log(x);//global 같은 var x임에도 서로 다른 결과를 도출한다. ☞ 스코프 개념에 의해 발생한 일 스코프 종류 자신이 선언된 위치에 따라 스코프가 결정된다. 전역 스코프 : 전역에서 선언된 변수 지역 스코프 : 지역에서 선언된 변수 스코프 체인 함수는 중첩이 가능하고 ..
함수 코드의 집합을 나타내는 자료형이다. 풀어쓰면 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. #함수를 사용하는 이유 유지보수의 편의성 코드의 신뢰성 코드의 가독성 함수 정의 함수 선언문 함수 표현식 Function 생성자 함수 화살표 함수 (ES6) 함수 선언문 // 함수 선언문 function add(x, y) { return x + y; } // 함수 호출 console.log(add(2, 5)); // 7 함수 선언문은 함수 이름을 생략할 수 없다. // 함수 선언문은 함수 이름을 생략할 수 없다. function (x, y) { return x + y; } // SyntaxError: Function statements require a function..
원시 값과 객체의 비교 원시 값은 변경 불가능한 값 객체 타입의 값은 변경 가능한 값 원시 값을 변수에 할당하면 변수에는 실제 값 저장 객체를 변수에 할당하면 변수에는 참조 값 저장 원시 값을 다른 변수에 할당 -> 값에 의한 전달 객체를 다른 변수에 할당 -> 참조에 의한 전달 원시 값 변경 불가능한 값 원시 값은 변경 불가능한 값이다. 한번 생성된 원시 값은 읽기만 가능하고 변경 불가하다. 위 코드를 보면 새로운 메모리 공간을 확보한다. 원시 값을 할당한 변수에 새로운 원시 값을 재할당하면 메모리 공간에 저장되어 있는 재할당 이전의 원시 값을 변경하는 것이 아니라 새로운 메모리 공간을 확보하고 재할당한 원시 값을 저장한 후, 변수는 새롭게 재할당한 원시 값을 가리킨다. 이러한 특성을 불변성이라고 한다..
객체 객체란 0개 이상의 프로퍼티로 구성된 집합이다. 프로퍼티 프로퍼티는 키(key)와 값(value)으로 구성된다. 프로퍼티 키 : 빈 문자열을 포함하는 모든 문자열 또는 symbol 값 프로퍼티 값 : 자바스크립트에서 사용할 수 있는 모든 값 프로퍼티 키는 일반적으로 문자열을 사용 그렇지만 네이밍 규칙을 준수하는 이름인 경우 따옴표 생략 가능 프로퍼티 접근 프로퍼티 접근 방법 마침표 표기법 대괄호 표기법 var person = { name: 'Tooo1' }; console.log(person.name);// 마침표 표기법 console.log(person.['name']);//대괄호 표기법 프로퍼티 갱신 var person = { name: 'Tooo1' }; person.name = 'T' con..
암묵적 타입 변환 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동으로 변환 var x = 10; // 암묵적 타입 변환 var str = x + ''; console.log(typeof str, str); // string 10 자바스크립트 엔진에 의해 암묵적으로 일어나기 때문에 코드에 타입 변환 의지가 드러나지 않는다. ∴ 타입 변환에 대해 예측 가능해야 한다. 명시적 타입 변환 개발자의 의도에 의해 타입을 바꾸는 방법이다. 표준 빌트인 생성자 함수(String, Number, Boolean)를 new 연산자 없이 호출 빌트인 메서드 사용 암묵적 타입 변환 사용 표준 빌트인 생성자 함수(String, Number, Boolean)를 new 연산자 없이..
블록문 블록문은 0개 이상의 문을 중괄호로 묶은 것이다. 단독으로 사용 가능하나 제어문이나 함수를 정의할 때 사용하는 것이 일반적이다. 조건문 조건문은 조건식의 결과에 따라 코드 블록의 실행을 결정한다. if ...else 문 if (조건식1){ // 조건식1이 true 일때 실행 } else if (조건식2){ // 조건식2가 true일때 실행 } else { // 전부 false이면 실행 } switch 문 switch (표현식) { case 표현식1: /* code */ break; default: break; } 반복문 반복문은 조건식의 평가 결과가 참인 경우 코드 블록을 실행한다. for 문 조건식이 거짓이 될 때까지 코드 블록을 반복 실행한다. for(int i=0; i < 2; i++){ c..
연산자 연산자는 하나 이상의 표현식을 대상으로 산술, 할당 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다. 1. 산술 연산자 (1) 이항 산술 연산자 연산자 의미 + 덧셈 - 뺄셈 * 곱셈 / 나눗셈 % 나머지 2개의 피연산자를 산술 연산하여 숫자 값을 만든다. (2)단항 산술 연산자 연산자 의미 ++ 증가 -- 감소 + 아무 효과 없음 - 양수/음수 반전 1개의 피연산자를 산술 연산하여 숫자 값을 만든다. (3)문자열 산술 연산자 //문자열 연결 연산자 '1'+2; // ->'12' //true는 1로 타입 변환 1 + true; //false는 0으로 타입 변환 1 + false; //null은 0으로 타입 변환 1 + null; + 연산자는 피연산자 중 하나 이상이 문자열인 경우에..
- Total
- Today
- Yesterday
- 파이썬
- 쉽게배우는자바프로그래밍
- BFS
- 해답
- 정리
- 자바스크립트
- 구현
- 자바
- OS
- py
- 우종정
- 쉽게배우는
- 풀이
- 정렬
- java
- Python
- Web
- 알고리즘
- JS
- C++
- 백준
- 문자열
- 답
- 연습문제
- CPP
- 프로그래머스
- 그리디
- 쉽게 배우는 자바 프로그래밍
- 운영체제
- 정답
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |