상세 컨텐츠

본문 제목

3회차

JavaScript&React

by DeepLearning Engineer 2023. 1. 6. 18:58

본문

SMALL

Truty & Falsy

// False : undefine, null , "" , 0, 0.0,NaN
// True : 그외

let a = "";
if (a) {
console.log("True");
} else {
console.log("False");
}

const getName = (person) => {
if (!person) {
return "객체가 아닙니다"
}
};

let person = { name: "김수현" };

const name = getName(person);
console.log(name);

삼항연산자

// 삼항 연산자

let a = 3;
if (a>0){
console.log("양수")
}
else{
console.log("음수")
}

a>0 ? console.log('양수') : console.log("음수");


let b = [];

if (b.length===0){
console.log("빈배열")
} else {
console.log("안빈배열")
}

(b.length===0)?(console.log("빈배열")):(console.log("안빈배열"));

const arraystste = (b.length===0)?("빈배열"):("안빈배열")
console.log(arraystste)

중첩 삼항 연산자

let score = 40;

(score>90)?(console.log("A+")):((score>50)?(console.log("B+")):(console.log("F")))
()?():() 이렇게쓰고 삼항연산자 사용하기

 

 

단락회로 연산자

const getName = (person)=> {
const name = person && person.name;
return name || "객체가 아닙니다.";
}
let person={name:""};

const name = getName(person);
console.log(name);


조건문 업그레이드

const isKoreanFood = (food) => {
// if (food==="불고기" || food ==="비빔밥" || food==="떡볶이") {
// return true;
// }
// else{
// return false;
// }
if (["떢볶이","비빔밥","불고기"].includes(food)){
return true;
}
return false;
}

const food1 = isKoreanFood("불고기");
const food2 = isKoreanFood("파스타");
console.log(food1)
console.log(food2)
 
const meal = {
한식 : "불고기",
중식 : "멘보샷",
일식 : "초밥",
양식 : "파스타",
인도식 : "카레"
}

const getMeal = (mealType) =>{
return meal[mealType] || "굶기";
}

console.log(getMeal("중식"))


비구조화 할당
let [one,two,three,four=-1] = ["one","two","three"];

console.log(one,two,three,four);

let a = 10;
let b = 20;

[a,b] = [b,a];
console.log(a,b)
let object = {one:"one",two:"two",three:"three"};

let {one:my_one,two:my_two,three:my_three} = object;

console.log(my_one,my_two,my_three)

spread

const cookie = {
base : "cookie",
madeIn:"korea"
}

const chocochipCookie = {
...cookie,
toping : "chocochip",
}

const blueberryCookie = {
...cookie,
toping:"blueberry"
}

const strawberryCookie = {
...cookie,
toping:"strawberry"
}
console.log(blueberryCookie)
 
비동기
function taskA(a, b, callback) {
setTimeout(() => {
const res = a + b;
callback(res);
}, 3000);
}

function taskB(a, callback) {
setTimeout(() => {
const res = a * 2;
callback(res);
}, 2000);
}

function taskC(a, callback) {
setTimeout(() => {
const res = a * -1;
callback(res);
}, 1000);
}

taskA(4, 5, (a_res) => {
console.log("A Task Result : ", a_res);
taskB(a_res, (b_res) => {
console.log("B RESULT : ", b_res);
taskC(b_res, (c_res) => {
console.log("C_result : ", c_res);
});
});
});

console.log("코드끝");
function taskA(a,b,callback) {
setTimeout(()=>{
const res = a+b;
callback(res);
},3000);
}

taskA(3,4,(res)=>{
console.log("A Task Result : ",res);
});
console.log("코드끝")
 
function isPositive(number, resolve, reject) {
setTimeout(() => {
if (typeof number === "number") {
resolve(number >= 0 ? "양수" : "음수");
} else {
reject("주어진 값이 숫자형이 아닙니다.");
}
}, 2000);
}

isPositive(
"asd",
(res) => {
console.log("성공적으로 수행됨 : ", res);
},
(err) => {
console.log("실패 : ", err);
}
);

 

function isPositive(number, resolve, reject) {
setTimeout(() => {
if (typeof number === "number") {
resolve(number >= 0 ? "양수" : "음수");
} else {
reject("주어진 값이 숫자형이 아닙니다.");
}
}, 2000);
}

function isPositiveP(number){
const executor = (resolve,reject) => {
setTimeout(()=>{
if (typeof number === "number") {
resolve(number >= 0 ? "양수" : "음수");
} else {
reject("주어진 값이 숫자형이 아닙니다.");
}
},2000)
}
const asyncTask = new Promise(executor);
return asyncTask;
}

const res = isPositiveP(101);

res.then((res)=>{console.log("작업성공 : ",res)}).catch((err)=>{console.log("작업실패",err)})

 

 

 

function taskA(a, b, ) {
return new Promise((resolve,reject) => {
setTimeout(() => {
const res = a + b;
resolve(res);
}, 3000);})}


function taskB(a) {
return new Promise((resolve,reject)=>{
setTimeout(() => {
const res = a * 2;
resolve(res);
}, 1000);})}


function taskC(a, callback) {
return new Promise((resolve,reject)=>{
setTimeout(()=>{
const res = a*-1;
resolve(res);
},2000)
});}

taskA(5,1).then((a_res)=>{
console.log("A_RESULT:",a_res);
return taskB(a_res);
}).then((b_res)=>{
console.log("B Result : ",b_res)
return taskC(b_res);
}).then((c_res)=>{
console.log("C Result : ",c_res)
})



async & await

 

function delay(ms) {
return new Promise((resolve) => {
setTimeout(() => {
resolve();
}, ms);
});
}

async function hello_async() {
await delay(3000);
return "hello async";
}

async function main() {
const res = hello_async();
console.log(res);
}

main();
LIST

댓글 영역