JavaScript44 [JS] strict mode 📌 strict mode란?strict mode: 자바스크립트 언어의 문법을 좀 더 엄격히 적용하여 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 있는 코들에 대해 명시적인 에러를 발생시키는 모드잠재적인 오류를 발생시키기 어려운 개발 환경을 만들어 안정적인 코드를 생산할 수 있게 지원함ESLint: 정적 분석 기능을 통해 소스코드를 실행하기 전에 소스코드를 스캔하여 문법적 오류만이 아니라 잠재적 오류까지 찾아내고 오류의 원인을 리포팅해주는 도구. strict mode와 유사한 효과를 얻을 수 있음. 📌 strict mode의 적용전역의 선두 또는 함수 몸체의 선두에 'use strict';를 추가하여 적용할 수 있음'use strict'; // 전역의 선두에 추가.. 2024. 5. 11. [JS] 프로토타입 📌 객체지향 프로그래밍자바스크립트는 프로토타입 기반의 객체지향 프로그래밍 언어이며 자바스크립트를 이르고 있는 거의 모든 것이 객체임 (함수, 배열, 정규 표현식 등)객체지향 프로그래밍: 여러 개의 독립적 단위(객체의 집합)로 프로그램을 표현하려는 프로그래밍 패러다임추상화: 다양한 속성 중에서 프로그램에 필요한 속성만 간추려 내어 표현하는 것객체:속성을 통해 여러 개의 값을 하나의 단위로 구성한 복합적인 자료구조상태 데이터(프로퍼티)와 동작(메서드)을 하나의 논리적인 단위로 묶은 복합적인 자료구조 📌 상속과 프로토타입상속(Inheritance): 어떤 객체의 프로퍼티 또는 메서드를 다른 객체가 상속받아 그대로 사용할 수 있는 것자바스크립트는 프로토타입을 기압으로 상속을 구현함생성자 함수가 생성할 모든 .. 2024. 4. 21. [JS] 함수와 일급 객체 📌 일급 객체 무명의 리터럴로 생성할 수 있음 (런타임에 생성 가능) 변수나 자료구조(객체, 배열 등)에 저장할 수 있음 함수의 매개변수에 전달할 수 있음 함수의 반환값으로 사용할 수 있음 📌 함수 객체의 프로퍼티 arguments 프로퍼티 arguments 객체: 함수 호출 시 전달된 인수들의 정보를 담고 있는 순회 가능한 유사 배열 객체 arguments 객체의 length: 인수의 개수를 가리킴 caller 프로퍼티: 함수 자신을 호출한 함수를 가리킴 length 프로퍼티: 함수를 정의할 때 선언한 매개변수의 개수를 가리킴 name 프로퍼티: 함수 이름을 나타냄 __proto__ 접근자 프로퍼티: [[Prototype]] 내부 슬롯이 가리키는 프로토타입 객체에 접근하기 위해 사용하는 접근자 프로퍼티.. 2024. 4. 21. [JS] 생성자 함수에 의한 객체 생성 📌 생성자 함수 생성자 함수: new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수 자바스크립트는 Object, String, Number, Boolean, Function, Array, Date, RegExp, Promise 등의 빌트인 생성자 함수를 제공함 📌 객체 생성 방식 객체 리터럴에 의한 객체 생성 방식 장점: 직관적이며 간편함 단점: 한번에 하나의 객체만 생성할 수 있어 동일한 프로퍼티를 갖는 객체를 여러 개 생성해야 하는 경우 매번 같은 프로퍼티를 기술해야 하기 때문에 비효율적임 생성자 함수에 의한 객체 생성 방식 장점: 객체(인스턴스)를 생성하기 위한 템플릿(클래스)처럼 생성자 함수를 사용하여 프로퍼티 구조가 동일한 객체 여러 개를 간편하게 생성할 수 있음 📌 생성자 함수의 인스.. 2024. 4. 14. [JS] 프로퍼티 어트리뷰트 📌 프로퍼티 어트리뷰트 자바스크립트 엔진이 관리하는 내부 상태 값인 내부 슬롯([[Value]], [[Writable]], [[Enumable]], [[Configurable]]) 프로퍼티 어트리뷰트에 직접 접근할 수는 없지만 Object.getOwnPropertyDescriptor 메서드를 이용해 간접적으로 확인 가능함 Object.defineProperty 메서드를 사용해 프로퍼티 어트리뷰트를 정의할 수 있음 📌 데이터 프로퍼티 키와 값으로 구성된 일반적인 프로퍼티 [[Value]], [[Writable]], [[Enumable]], [[Configurable]]를 프로퍼티 어트리뷰트로 갖고 있음 📌 접근자 프로퍼티 자체적으로는 값을 갖지 않고 다른 데이터 프로퍼티의 값을 읽거나 저장할 때 호출되는 .. 2024. 4. 14. [JS] let, const 키워드와 블록 레벨 스코프 📌 var 키워드로 선언한 변수의 문제점 1. 변수 중복 선언 허용 - var 키워드로 선언한 변수는 중복 선언이 가능하기 때문에 의도치 않게 먼저 선언된 변수 값이 변경되는 부작용이 발생함 2. 함수 레벨 스코프 - var 키워드로 선언한 변수는 오로지 함수 코드 블록만을 지역 스코프로 인정하기 때문에 함수 외부에서 선언한 변수는 코드 블록 내에서 선언해도 모두 전역 변수가 됨 3. 변수 호이스팅 - 변수 호이스팅에 의해 var 키워드로 선언한 변수는 변수 선언문 이전에 참조할 수 있어 가독성을 떨어뜨리고 오류 발생의 여지가 있음 📌 let 키워드 - 변수 중복 선언 금지 let 키워드로 이름이 같은 변수를 중복 선언하면 문법 에러가 발생함 - 블록 레벨 스코프 let 키워드로 선언한 변수는 모든 코드.. 2024. 4. 7. 이전 1 ··· 3 4 5 6 7 8 다음