JavaScript
2024.06.30
구조 분해 할당의 목적은배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하기 위함 // 1. 배열의 구조 분해 할당let arr = [1, 2, 3];let testOne = arr[0];let testTwo = arr[1];let testThree = arr[2];// => 매우 불편// 구조 분해 할당을 통해 한 번에 값을 할당let [one, two, three] = arr;console.log(one, two, three); // 1 2 3let [one1, two2] = arr;console.log(one1, two2); // 1 2// 2. 객체의 구조 분해 할당let person = { name: "DY", age: 99, hobby: "Coding",};// [ke..
JavaScript
2024.06.23
Truthy & Falsy Boolean 타입이 아니더라도, 조건문 내에서 참 거짓으로 평가되는 것을 말하며Truthy, Falsy를 사용하면 조건문을 간결하게 만들 수 있다.// 1. Falsy한 값let falsy1 = undefined;let falsy2 = null;let falsy3 = 0;let falsy4 = -0;let falsy5 = NaN; // Not a Numberlet falsy6 = "";let falsy7 = 0n; // BigInteger// => 조건문에서 거짓으로 평가 됨if (!falsy1) { console.log(falsy1, "is false");}// 2. Truthy한 값let truthy1 = "hello";let truthy2 = 123;let truthy..
JavaScript
2024.06.23
객체는 { } 를 이용하여 생성하고 class 처럼 변수와 메소드를 넣어줄 수 있다.// 1. 객체 생성let obj1 = new Object(); // 객체 생성자let obj2 = {}; // 객체 리터럴// 2. 객체 프로퍼티 (속성)let person = { name: "DY", // key : value age: 33, hobby: "soccer", extra: function () { console.log("print extra"); }, "like cat": false,};// 3. 객체 프로퍼티를 다루는 방법// 3.1 특정 프로퍼티에 접근하는 방법 (점 표기법, 괄호 표기법)let name = person.name;console.log("obj name is ", name..
JavaScript
2024.06.23
A함수를 B함수의 매개변수로 전달하여 B함수에서 A함수를 호출(콜백)// 1. callback functionfunction main(value) { value();}function sub() { console.log("I am sub");}main(sub); // I am sub// 2. callback 활용function repeat(count, callback) { for (let idx = 1; idx { console.log("callback", idx, "called");});// 1// 2// 3// 4// 5repeat(5, (idx) => { console.log("callback", idx * 2, "called");});// 2// 4// 6// 8// 10
JavaScript
2024.06.16
자바스크립트에서 함수를 선언하는 방법 // 1. 명명 함수function funcA() { console.log("funcA");}let varA = funcA;varA();// 2. 익명 함수// 함수 표현식 (값으로 취급 되기 때문에 호이스팅 대상이 아님)let varB = function () { console.log("funcB");};// 3. 화살표 함수let varC = /*function*/ () => { // function키워드를 생략할 수 있다. return 1;};// 즉시 반환 시 중괄호, return 생략 가능let varC_return = (value) => value + 1;
JavaScript
2024.06.16
// 1. null병합 연산자// -> 존재하는 값을 추려내는 기능// -> null, undefined가 아닌 값을찾아내는 연산자let var1;let var2 = 10;let var3 = 20;let var4 = var1 ?? var2;console.log(var4); // => 10let var6 = var3 ?? var2;console.log(var6); // => 20 let var7 = var2 ?? var3;console.log(var7); // => 10// 둘다 null, undefined가 아닌 경우 앞에 값 사용// 이렇게 응용도 가능let userName = "DY";const defaultName = "None";let displayName = userName ?? defaultN..
JavaScript
2024.06.16
자바스크립트의 타입캐스팅은 두가지 방식이 존재1) 상황에 따라 암시적 형변환을 자바스크립트 엔진에서 실행2) 개발자가 코드를 통해 의도적으로 명시적 형변환을 실행 암시적 형변환 예)// 1. Implicit Type Castinglet num = 10;let str = "20";const result = num + str;console.log(result); // => 1020 문자열이 된다. 명시적 형변환 예)// 2. Explicit Type Castinglet str1 = "10";let strToNum1 = Number(str1);// console.log(10 + strToNum1); // => 20let str2 = "20개";let strToNum2 = Number(str2);console..
JavaScript
2024.06.16
자바스크립트 데이터 타입은 크게 원시(Primitive)타입과 객체(Object)타입으로 구분 된다.객체 타입은 c/cpp의 포인터나 자바처럼 참조형이기 때문에 주소를 통해 접근된다. (따라서 얕은 복사 주의) Primitive Type 예)// Number Typelet num1 = 27;let num2 = 1.5;let num3 = -20;console.log(num1 + num2);console.log(num1 - num2);console.log(num1 * num2);console.log(num1 / num2);console.log(num1 % num2);let inf = Infinity;let mInf = -Infinity;console.log(inf);console.log(mInf);let ..