목록HTML+CSS+JavaScript/DeepDive (19)
가오리의 코딩일기
🔗 arr.forEach(callback(currentValue[, index[, array]])[, thisArg]) : 주어진 callback을 배열에 있는 각 요소에 대해 오름차순으로 한 번씩 실행한다 → 삭제했거나 초기화하지 않은 인덱스 속성에 대해서는 실행하지 않는다 → currentValue: 처리할 현재 요소 → index: 처리할 현재 요소의 인덱스 → array: forEach()를 호출한 배열 → thisArg: callback을 실행할 때 this로 사용할 값 const items = ['item1', 'item2', 'item3']; const copy = []; // for 반복문 for (let i = 0; i < items.length; i++){ copy.push(items[..
: 하나의 프로그래밍 패러다임으로 정의되는 일련의 코딩 접근 방식 → 클로저, 스칼라, 하스켈, 자바스크립트, 코틀린, 파이썬 등이 있다 🧩 순수함수(Pure function) → 동일한 입력에는 항상 같은 값을 반환해야 하는 함수 → 함수의 실행이 프로그램의 실행에 영향을 미치지 않아야 하는 함수 → 함수 내부에서 인자의 값을 변경하거나 프로그램 상태를 변경하는 side effect가 없는 것 → 프로그램의 변화 없이 입력 값에 대한 겨로가를 예상할 수 있어 테스트가 용이하다 let num = 1; function add(a){ return a + num; } // 전역으로 선언된 num을 참조하기 때문에 순수함수가 아니다 function add(a,b){ return a+b; } // add()가 프..
🔗 제어문(control flow statement) → 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용 → 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어 → forEach, map, filter, reduce 같은 고차 함수를 사용한 함수형 프로그래밍 기법에서는 제어문의 사용을 억제하여 복잡성을 해결하려고 노력한다 💡 블록문(block/compound statement) → 0개 이상의 문을 중괄호로 묶는 것 → 자바스크립트는 블록문을 하나의 실행 단위로 취급한다 → 단독으로 사용할 수 있으나 일반적으로 제어문이나 함수를 정의 시 사용 → 자체 종결성(문의 종료)을 갖기 때문에 블록문의 끝에는 세미콜론을 붙이지 않는다 💡 조건문(conditional statement) → 조건식의 평가..
🧩 논리 연산자 Q1. 다음 OR 연산의 결과는 무엇일까요? alert(null || 2 || undefined); → alert 창에 2 Q2. OR 연산자의 피연산자가 alert라면? alert( alert(1) || 2 || alert(3) ); → alert 창에 1, 2 Q3. 다음 AND 연산의 결과는 무엇일까요? alert( 1 && null && 2 ); → alert 창에 null Q4. AND 연산자의 피연산자가 alert라면? alert( alert(1) && alert(2) ); → alert 창에 1, undefined Q5. OR AND OR 연산자로 구성된 표현식 alert( null || 2 && 3 || 4 ); → alert 창에 3 → &&가 ||보다 우선순위가 높다 Q..
🧩 기본 연산자와 수학 Q1. 전위형과 후위형 let a = 1, b = 1; let c = ++a; let d = b++; → a = 2, b =2, c =2, d = 1 Q2. 할당 후 결과 예측하기 let e = 2; let x = 1 + (e *= 2); → e = 4, x = 5 Q3. 형변환 "" + 1 + 0; // "10" "" - 1 + 0; // -1 true + false; // 1 6 / "3"; // 2 "2" * "3"; // 6 4 + 5 + "px"; // "9px" "$" + 4 + 5; // "$45" "4" - 2; // 2 "4px" - 2; // NaN 7 / 0; // Infinity " -9 " + 5; // -9 5 " -9 " - 5; // -14 null +..
→ 연산자 : 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산을 수행해 하나의 값을 만든다 → 피연산자 : 연산의 대상, "값" 🧩 산술 연산자(arthmenc operator) → 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다 → 산술 연산이 불가능한 경우 NaN(Not a Number) 🧩 이항 산술 연산자 → 부수효과가 없다 + 할당연산자, 증가/감소 연산자 등 일부 연산자는 다른 코드에 영향을 주는 효과 → 어떤 산술 연산을 해도 피연산자의 값이 바뀌는 경우는 없다 🧩 단항 산술 연산자 → 증가/감소 연산자, 부수 효과가 있다 → 전위 증가/감소 연산자 : 먼저 피연산자의 값 증가, 감소 → 후위 증가/감소 연산자 : 나중에 피연산자의 값 증가, 감..
✏️ 1과 '1'은 같을까? → 숫자 1은 산술 연산을 위해 생성하지만 문자 1은 텍스트를 화면에 출력하기 위해 생성한다 → 확보해야 할 메모리 공간의 크기도, 메모리에 저장되는 2진수도, 읽어서 해석하는 방식도 모두 다르다 💡 숫자(number)타입 → 숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재 → 다른 언어들은 int, long, float, double 등 다양한 숫자 타입을 제공하지만 자바스크립트는 아니다 → 자바스크립트는 모든 수를 실수로 처리하기 때문에 정수만을 위한 타입이 없다 → 정수로 표시된다 해도 실수이기 때문에 정수로 표시되는 수끼리 나누었을 때 실수가 나올 수 있다 → 3가지 특별한 값 : Infinity(양의 무한대), -Infinity(음의 무한대), NaN(산술 연..
💡 값(value) → 표현식이 평가되어 생성된 결과 → 식을 해석해서 값을 생성하거나 참조하는 것 → 메모리에 저장된 값 : 0100 0001 == 65 =='A' → 변수 : 하나의 값을 저장하기 위해 확보된 메모리 공간 자체, 그 메모리 공간을 식별하기 위해 붙인 이름 → let sum = 10 + 20; // 메모리 공간에 저장된 것은 10+20이 아닌 할당 이전에 평가된 값인 30이다 💡 리터럴 → 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법 💡 표현식(expression) → 값으로 평가(산출)될 수 있는 문, 함수의 인자로 들어갈 수 있다 → 평가되면 새로운 값을 생성하거나 기존 값을 참조 → 리터럴, 식별자(변수명, 함수명), 연산자, 함수 호출 등의 조합으..
더보기 → 컴퓨터는 CPU를 사용해 연산하고 메모리를 사용해 데이터를 기억한다 → 컴퓨터는 메모리 셀의 크기, 즉 1바이트 단위로 데이터를 저장하거나 읽어들인다 (+) 4GB 메모리는 0~4,294,967,295까지의 메모리 주소를 갖는다 → 메모리에 저장되는 데이터는 데이터의 종류(숫자, 텍스트, 이미지, 동영상)와 상관없이 모두 2진수로 저장된다 💡 변수(variable) → 하나의 값을 저장하기 위해 확보한 메모리 공간 자체, 값의 위치를 가리키는 상징적인 이름 → 변수에 값을 저장하는 것을 할당, 변수에 저장된 값을 읽어 들이는 것을 참조라고 한다 💡 식별자(identifier) → 어떤 값을 구별해서 식별할 수 있는 고유한 이름 → 메모리 주소에 붙인 이름, 값이 아니라 메모리 주소를 기억한다 ..