JavaScript
-
promise catch errorJavaScript/입 속의 검은 잎 2022. 10. 5. 18:32
function 몇초후프로미스에러발생(sec){ return new Promise((resolve,reject)=>{ setTimeout(()=>{ reject('error!'); }, sec*1000); }) } try{ 몇초후프로미스에러발생(3); } catch(err){ console.error(err) } """ node:internal/process/promises:279 triggerUncaughtException(err, true /* fromPromise */); ^ [UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by ..
-
try catch errorJavaScript/입 속의 검은 잎 2022. 10. 5. 17:57
function f2(){ console.log('f2 start'); throw '에러' console.log('f2 end') } function f1(){ console.log('f1 start') try{ f2(); }catch(err){ console.log(err); } console.log('f1 end') } console.log('will : f1') f1(); console.log('did : f1') /* will : f1 f1 start f2 start 에러 f1 end did : f1 */ 로그를 보면, 에러 발생 이후 f2() 의 두번째 console.log 는 실행되지 않았다. 이후 catch 문에 잡히고 나서 f1 end 는 콘솔에 찍혔다. function f2(){ cons..
-
json 객체JavaScript/입 속의 검은 잎 2022. 10. 5. 11:15
JavaScript Object Notation, JSON 흔히 보는 객체의 배열 같지만 추가 규칙이 있다. - 값을 표혈할 때 문자열, 숫자, 불 자료형만 가능. 함수 불가. - 문자열은 반드시 큰 따옴표. -키에도 반드시 큰 따옴표. 자바스크립트 객체를 JSON 문자열로 변환할 때 JSON.stringify() 사용. const data =[ {name : '가나다라', 속성 : 'red'}, {name : '마바사아', 속성 : 'blue'} ] console.log(JSON.stringify(data)) // [{"name":"가나다라","속성":"red"},{"name":"마바사아","속성":"blue"}] console.log(JSON.stringify(data, "속성", 2)) /** [ ..
-
프로미스JavaScript 2022. 10. 5. 09:52
그간 접한 코드와 예제, 강의로는 실제로 프로미스가 활용되는 방식을 이해하는 데에 턱없이 부족하다. 더 나아간 공부가 필요하다. resolve를 타고 then 이 어떻게 움직이는지에 대한 쉬운 예제 const countPromise = Promise.resolve(0); function increment(value) { return value + 1; } const resultPromise = countPromise.then(increment).then(increment).then(increment); resultPromise.then(console.log); // Print: 3 const firstPromise = new Promise((resolve, reject) => { resolve('Firs..
-
Express) app 객체, request 객체JavaScript/Exress 2022. 10. 1. 10:07
https://expressjs.com/en/api.html#express Express 4.x - API Reference Express 4.x API express() Creates an Express application. The express() function is a top-level function exported by the express module. var express = require('express') var app = express() Methods express.json([options]) This middleware is available in Ex expressjs.com app 객체 관용적으로(conventionally) express 어플리케이션을 표시. app 객체를 ..
-
심볼JavaScript 2022. 9. 30. 02:21
// property keys : 문자형 const obj = { 1: '1입니다', false : '거짓' // key를 숫자나 boolean 형으로 만들어봤자... } console.log(Object.keys(obj)); // [ '1', 'false' ] // 어차피 문자형으로 반환 //그런데 property key 로 하나 더 가능한게 있다! 그게 symbol!!!! const a = Symbol(); // new 같은거 필요 없다. symbol은 유일한 식별자를 만들 때 사용한다. const b = Symbol(); console.log(a) //Symbol() console.log(b) //Symbol() //요렇게 생긴 것은 같지만... console.log(a==b) // false //..
-
객체 메소드JavaScript 2022. 9. 30. 02:11
Object.assign() // Object.assign() // 객체 복제 const user = { name : 'Mike', age : 30, [1+4]:5, // 이렇게 식 자체를 넣는 것도 가능하다. ["안녕"+"하세요"] : "Hello" } const cloneUser = user; // 이러면 복제가 될까? 안된다! //user 변수에는 객체 자체가 들어가 있는게 아니다. //객체가 저장되어 있는 메모리의 주소, 객체에 대한 참조값이 저장된다. //즉, 이런 클론유저는 객체가 복사되는게 아니라 참조값만 복사되는 거다. console.log(user.name) // 'Mike' cloneUser.name = 'Tom'; console.log(user.name) // 'Tom' // 아래에서..
-
계산된 프로퍼티 computed propertyJavaScript 2022. 9. 30. 02:09
let n = 'name'; let a = 'age'; const user = { [n] : 'Mike', // name : 'Mike' [a] : 30, //age : 30 //name 대신 [n], age 대신 [a]. 저렇게 대괄호로 묶으면, 변수 a에 할당된 값이 들어간다. // 이걸 computed property 계산된 프로퍼티라 부른다. [1+4]:5, // 이렇게 식 자체를 넣는 것도 가능하다. ["안녕"+"하세요"] : "Hello" } console.log(user) // { '5': 5, name: 'Mike', age: 30, '안녕하세요': 'Hello' }