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();
댓글 영역