Javascript While문

개발 및 관리/Javascript 2022. 4. 3. 08:00 posted by HighLighter
반응형

while문 : 조건을 체크하고 true이면 괄호안의 명령을 계속 실행한다.

while문 예제(1).txt
0.00MB
while문 예제-factorial(2).txt
0.00MB

반응형

'개발 및 관리 > Javascript' 카테고리의 다른 글

자바스크립트와 객체  (0) 2022.04.03
Javascript Function  (0) 2022.04.03
Javascript for문  (0) 2022.04.03
자바스크립트 기본 문법  (0) 2022.04.02
JSON 사용법, JSON.stringify, JSON.parse  (0) 2022.03.24

Javascript for문

개발 및 관리/Javascript 2022. 4. 3. 07:39 posted by HighLighter
반응형

Javascript에서 정해진 숫자만큼 반복하기 위해서 아래의 for문을 사용합니다.

for문 예제(1).txt
0.00MB
for문 예제-구구단(2).txt
0.00MB

반응형

'개발 및 관리 > Javascript' 카테고리의 다른 글

Javascript Function  (0) 2022.04.03
Javascript While문  (0) 2022.04.03
자바스크립트 기본 문법  (0) 2022.04.02
JSON 사용법, JSON.stringify, JSON.parse  (0) 2022.03.24
String.replaceAll, Promise.any  (0) 2022.03.22

자바스크립트 기본 문법

개발 및 관리/Javascript 2022. 4. 2. 22:51 posted by HighLighter
반응형

1. 논리연산자

종류 기호 설명
OR연산자 || 피연산자 중 하나만 true여도 true가 됩니다.
AND 연산자 && 피연산자 모두 true일 경우에만 true가 됩니다.
NOT 연산자 ! 피연산자의 반댓값을 지정합니다.

< 자바스크립트 if , else if >
< 자바스크립트 switch, case >

 

반응형

'개발 및 관리 > Javascript' 카테고리의 다른 글

Javascript While문  (0) 2022.04.03
Javascript for문  (0) 2022.04.03
JSON 사용법, JSON.stringify, JSON.parse  (0) 2022.03.24
String.replaceAll, Promise.any  (0) 2022.03.22
Javascript Free Class  (0) 2022.03.22
반응형
// JSON
// JavaScript Object Notation

// 1. Object to JSON
// stringify(obj)

let json = JSON.stringify(true);
console.log(json);

json = JSON.stringify(['apple', 'banana']);
console.log(json);

const rabbit = {
    name: 'tori',
    color: 'white',
    size: null,
    birthDate: new Date(),
    symbol: Symbol("id"),
    jump: () => {
        console.log(`${name} can jump!`);
    },
};

json = JSON.stringify(rabbit);
console.log(json);

json = JSON.stringify(rabbit, ['name', 'color']);
console.log(json);

json = JSON.stringify(rabbit, (key, value) => {
    console.log(`key: ${key}, value: ${value}`);
    return value;
});
console.log(json);

json = JSON.stringify(rabbit, (key, value) => {
    console.log(`key: ${key}, value: ${value}`);
    return key === `name` ? 'batman' : value;
});
console.log(json);


// 2. JSON to Object
// parse(json)

console.clear();
json = JSON.stringify(rabbit);
//const obj = JSON.parse(json);
const obj = JSON.parse(json, (key, value) => {
    console.log(`key: ${key}, value: ${value}`);
    //return value;
    return key === 'birthDate' ? new Date(value) : value;
});

console.log(obj);
rabbit.jump();
//obj.jump();

console.log(rabbit.birthDate.getDate());
//console.log(obj.birthDate.getDate());
//console.log(obj.birthDate);
console.log(obj.birthDate.getDate());
 
----------------------------------------------------------------------------------------------------------
 
자바스크립트 10. JSON 개념 정리 와 활용방법 및 유용한 사이트 공유 JavaScript JSON | 프론트엔드 개발자 입문편 (JavaScript ES6)

https://youtu.be/FN_D4Ihs3LE

JSON Diff
JSON Beautifier
JSON Parser
JSON Validator

----------------------------------------------------------------------------------------------------------

JavaScript - JSON (1/4) : 소개

https://youtu.be/MDK3xB6SuQk

네? 저는 JSON이 뭔지 모르는데...

https://youtu.be/Pvo_AT8hnso

JSP에서 Ajax와 JSON 활용하기 강좌 1강 - 프로젝트 소개 및 기초 화면 구성하기 (JSP Ajax Basic Tutorial #1)

https://youtu.be/bWbyhYUkwDQ?list=PLRx0vPvlEmdD2mcWus8hakX103PwcSJe8

[코딩기초] JSON

https://youtu.be/jHML_8kdeoM

스프링부트 강좌 23강(블로그 프로젝트) - JSON 사용법

https://youtu.be/olaeVwjx3J8

반응형

'개발 및 관리 > Javascript' 카테고리의 다른 글

Javascript for문  (0) 2022.04.03
자바스크립트 기본 문법  (0) 2022.04.02
String.replaceAll, Promise.any  (0) 2022.03.22
Javascript Free Class  (0) 2022.03.22
Generator  (0) 2022.03.21

String.replaceAll, Promise.any

개발 및 관리/Javascript 2022. 3. 22. 22:12 posted by HighLighter
반응형

// ES2021 자바스크립트에 추가된 새로운 기능들을 알아보자!

----------------------------------------------------------------------------------

console.clear();

// ES2021
// String.replaceAll

const str1 = "Hello World";
console.log(str1.replaceAll("l", "~"));

const str2 = "Hello World";
console.log(str2.replace(/l/, "~"));

const str3 = "Hello World";
console.log(str3.replace(/l/g, "~"));

const str4 = "I'm [Mike]. This is Tom's [Car].";
console.log(str4.replaceAll("[", "~").replaceAll("]", "~"));
console.log(str4.replace(/\[/g, "~").replace(/\]/g, "~"));

----------------------------------------------------------------------------------

console.clear();

// ES2021
// Promise.any

const rejPromise = new Promise((res, rej) =>{
  setTimeout(()=>{
    res("fail..")
  }, 1000)
});

const resPromise = new Promise((res, rej) =>{
  setTimeout(()=>{
    res("success")
  }, 2000)
});

// Promise.race : 프로미스 중에 가장 먼저 완료된 결과값으로 이행/거부 
Promise.race([rejPromise, resPromise])
  .then(() => console.log("성공"))
  .catch(e => console.log(e));

// Promise.any : 프로미스 중에 가장 먼저 이행된 객체 반환
Promise.any([rejPromise, resPromise])
  .then(() => console.log("성공"))
  .catch(e => console.log(e));

----------------------------------------------------------------------------------

function add(num1, num2){
  console.log(num1 + num2);
}

add(); //NaN

----------------------------------------------------------------------------------

function add(num1, num2){
  num1 = num1 || 0;
  num2 = num2 || 0;
  console.log(num1 + num2);
}

add(); // 0

----------------------------------------------------------------------------------

function add(num1, num2){
  num1 ||= 0;
  num2 ||= 0;
  console.log(num1 + num2);
}

add(); // 0

----------------------------------------------------------------------------------

name = name && `Hello ${name}`;
name && = `Hello ${name}`;

name = name ?? "Mike"
name ??= "Mike"

// ?? Nullish coalescing operator : null 병합 연산자
|| : 앞의 값이 false이면 뒤의 값 반환
?? : 앞의 값이 null 이나 undefined이면 뒤의 값 반환

let num = 0;
let a = a || 3; // 3
a // 3

let b = num ?? 3;  // num이 null 혹은 undefined 일 때만 3
b // 0

----------------------------------------------------------------------------------

let billion = 1000000000 // 10억
let billion_bar = 1_000_000_000 // 10억
billion_bar

----------------------------------------------------------------------------------

// WeakRef = weak reference

// 가비지 컬렉터
// 약한 참조 = 가비지 컬렉터 대상

let user = {name:'Mike', age:30}
const weakUser = new WeakRef(user);

user = null;

const timer = setInterval(()=>{
  const wUser = weakUser.deref();  // deref 객체 참조
  if(wUser){
    console.log(wUser.name);
  } else {
    console.log('제거 되었습니다.');
    clearInterval(timer)
  }
}, 1000)

----------------------------------------------------------------------------------

class MyCache {
  constructor() {
    this.cache = {}
   }

  add(key, obj) {
    this.cache[key] = new WeakRef(obj)
  }

  get(key) {
    let cachedRef = this.cache[key].deref()
    if(cachedRef) {
       return cachedRef
    } else {
      return false;
    }
  }
}

----------------------------------------------------------------------------------






반응형

'개발 및 관리 > Javascript' 카테고리의 다른 글

자바스크립트 기본 문법  (0) 2022.04.02
JSON 사용법, JSON.stringify, JSON.parse  (0) 2022.03.24
Javascript Free Class  (0) 2022.03.22
Generator  (0) 2022.03.21
async, await  (0) 2022.03.21

Javascript Free Class

개발 및 관리/Javascript 2022. 3. 22. 21:26 posted by HighLighter
반응형

JavaScript Tutorial for Beginners: Learn JavaScript in 1 Hour

https://youtu.be/W6NZfCO5SIk

Beginner Vanilla Javascript Project Tutorial

https://youtu.be/Ttf3CEsEwMQ

Using the setInterval() function in JavaScript

https://youtu.be/ubLC1JxMqfY

Animate with setInterval() and clearInterval()

https://youtu.be/ICTV6joUFV4

Intro to Game Development with JavaScript - Full Tutorial

https://youtu.be/3EMxBkqC4z0

The Easiest Javascript Game Ever

https://youtu.be/bG2BmmYr9NQ

Ep1: How to Make HTML5 Games: Javascript Tutorial for Beginners JS Guide

https://youtu.be/XgK4YaMqQFg?list=PLh-MBXZEiyMhulEqYE3gn63idSAKG6Sx1

Code Mario in JavaScript with Kaboom.js!

https://youtu.be/2nucjefSr6I?list=TLPQMjIwMzIwMjLmp51WUPOnKw

HTML5 Canvas and JavaScript Mario Game Tutorial

https://youtu.be/4q2vvZn5aoo?list=TLPQMjIwMzIwMjLmp51WUPOnKw

JavaScript Game Tutorial - 2D Tower Defense

https://youtu.be/QxYg8-mhhhs?list=TLPQMjIwMzIwMjLmp51WUPOnKw

Javascript Side Scroller Game Tutorial

https://youtu.be/7JtLHJbm0kA

Pokémon JavaScript Game Tutorial with HTML Canvas

https://youtu.be/yP5DKzriqXA

------------------------------------------------------------------------------------------

Learn DOM Manipulation In 18 Minutes

https://youtu.be/y17RuWkWdn8

JavaScript DOM Crash Course - Part 1

https://youtu.be/0ik6X4DJKCc

------------------------------------------------------------------------------------------

JavaScript Programming - Full Course

https://youtu.be/jS4aFq5-91M

------------------------------------------------------------------------------------------

JavaScript ES6, ES7, ES8: Learn to Code on the Bleeding Edge (Full Course)

https://youtu.be/nZ1DMMsyVyI

반응형

'개발 및 관리 > Javascript' 카테고리의 다른 글

JSON 사용법, JSON.stringify, JSON.parse  (0) 2022.03.24
String.replaceAll, Promise.any  (0) 2022.03.22
Generator  (0) 2022.03.21
async, await  (0) 2022.03.21
setTimeout, clearTimeout, setInterval, clearInterval  (0) 2022.03.21

Generator

개발 및 관리/Javascript 2022. 3. 21. 23:19 posted by HighLighter
반응형

Generator : 함수와 실행을 중간에 멈췄다가 재개할 수 있는 기능

function* fn() {
  console.log(1);
  yield 1;
  console.log(2);
  yield 2;
  console.log(3);
  console.log(4);
  yield 3;
  return "finish";
}

const a = fn();

a
a.next();

-------------------------------------------------------------------

Generator : 함수의 실행을 중간에 멈췄다가 재개할 수 있는 기능

next(), return(), throw()

-------------------------------------------------------------------

a.next();

a.return(`END`);

a.next();

function* fn() {
 try{
  console.log(1);
  yield 1;
  console.log(2);
  yield 2;
  console.log(3);
  console.log(4);
  yield 3;
  return "finish";
 } catch (e) {
  console.log(e);
 }
}

const a = fn();

a.next();
a.next();

a.throw(new Error('err'));

a.next();

-------------------------------------------------------------------

iterable
 - Symbol.iterator 메소드가 있다.
 - Symbo.iterator 는 iterator를 반환해야 한다.

iterator
 - next 메서드를 가진다.
 - next 메서드는 value와 done 속성을 가진 객체를 반환한다.
 - 작업이 끝나면 done은 true가 된다.

-------------------------------------------------------------------

const arr = [1, 2, 3, 4, 5];
const it = arr[Symbol.iterator]();
it.next();
it.next();
it.next();
it.next();
it.next();

for(let num of arr) {
  console.log(num)
};


-------------------------------------------------------------------

function* fn() {
  yield 4;
  yield 5;
  yield 6;
}

const a = fn();

a[Symbol.iterator]() === a;

for(let num of a) {
  console.log(num);
}

const str = 'hello';
str[Symbol.iterator]

const xx = str[Symbol.iterator]()

xx.next();

for(let num of xx) {
  console.log(num);
}

-------------------------------------------------------------------

Generator : next()에 인수 전달

function* fn() {
  const num1 = yield "첫번째 숫자를 입력해주세요";
  console.log(num1);

  const num2 = yield "두번째 숫자를 입력해주세요";
  console.log(num2);

  return num1 + num2;
}

const a = fn();

a.next();
a.next(2);
a.next(4);

-------------------------------------------------------------------

Generator : 값을 미리 만들어 두지 않음, 값을 필요할 때 마다 그때 그때 만든다. 필요한 순간까지 계산을 미룰 수 있다.

function* fn() {
  let index = 0;
  while (true) {
    yield index++;
  }
}

const a = fn();
a.next();

-------------------------------------------------------------------

Generator : yield* 을 이용하여 다른 Generator 호출

function* gen1() {
  yield "W";
  yield "o";
  yield "r";
  yield "l";
  yield "d";
}

function* gen2() {
  yield "Hello,";
  yield* gen1();
  yield "!";
}

console.log(...gen2());

-------------------------------------------------------------------

Generator : 제너레이터는 다른 작업을 하다가 다시 돌아와서
next() 해주면 진행이 멈췄던 부분 부터 이어서 실행

ex) Redux Saga

반응형

async, await

개발 및 관리/Javascript 2022. 3. 21. 23:11 posted by HighLighter
반응형



----------------------------------------------------------------------------------

async function getName() {
  return "Mike";
}

console.log(getName());

----------------------------------------------------------------------------------

async function getName() {
  return "Mike";
}

getName().then((name) => {
  console.log(name);
});

----------------------------------------------------------------------------------

async function getName() {
  return Promise.resolve("Tom");
}

getName().then((name) => {
  console.log(name);
});

----------------------------------------------------------------------------------

async function getName() {
  // return Promise.resolve("Tom");
  throw new Error("err..");
}

getName().catch((err) => {
  console.log(err);
});

----------------------------------------------------------------------------------

// await

function getName(name) {
  return new Promise(( resolve, reject) => {
    setTimeout(() => {
      resolve(name);
    }, 1000);
  });
}

async function showName() {
  const result = await getName("Mike");
  console.log(result);
}

console.log("시작");
showName();

----------------------------------------------------------------------------------

const f1 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res("1번 주문 완료");
    }, 1000);
  });
};

const f2 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res("2번 주문 완료");
    }, 1000);
  });
};

const f3 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res("3번 주문 완료");
    }, 1000);
  });
};


f1()
  .then((res) => f2(res))
  .then((res) => f3(res))
  .then((res) => console.log(res))
  .catch(console.log);


----------------------------------------------------------------------------------

const f1 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res("1번 주문 완료");
    }, 1000);
  });
};

const f2 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res("2번 주문 완료");
    }, 1000);
  });
};

const f3 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res("3번 주문 완료");
    }, 1000);
  });
};

console.log("시작");
async function order() {
  const result1 = await f1();
  const result2 = await f2(result1);
  const result3 = await f3(result2);
  console.log(result3);
  console.log("종료");
}

order();

----------------------------------------------------------------------------------

const f1 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res("1번 주문 완료");
    }, 1000);
  });
};

const f2 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      // res("2번 주문 완료");
      rej(new Error("err..));
    }, 1000);
  });
};

const f3 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res("3번 주문 완료");
    }, 1000);
  });
};

console.log("시작");
async function order() {
 try {
  const result1 = await f1();
  const result2 = await f2(result1);
  const result3 = await f3(result2);
  console.log(result3);
 } catch (e) {
  console.log(e);
 }
  console.log("종료");
}

order();

----------------------------------------------------------------------------------

const f1 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res("1번 주문 완료");
    }, 1000);
  });
};

const f2 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
       res("2번 주문 완료");
      // rej(new Error("err..));
    }, 1000);
  });
};

const f3 = (message) => {
  console.log(message);
  return new Promise((res, rej) => {
    setTimeout(() => {
      res("3번 주문 완료");
    }, 1000);
  });
};

console.log("시작");
async function order() {
 try {
  const result = await Promise.all([f1(), f2(), f3()]);
  console.log(result);
 } catch (e) {
  console.log(e);
 }
  console.log("종료");
}

order();

----------------------------------------------------------------------------------



반응형
반응형

setTimeout : 일정 시간이 지난 후 함수를 실행

clearTimeout : 예정된 작업을 없앤다.

setInterval : 일정 시간 간격으로 함수를 반복

clearInterval : 예정된 작업을 없앤다.

-----------------------------------------------------------------------------------

function fn() {
  console.log(3)
}

setTimeout(fn, 3000); // 3초 후에 log 찍어주기

-----------------------------------------------------------------------------------

setTimeout(function() {
  console.log(3)
}, 3000);

-----------------------------------------------------------------------------------

function showName(name) {
  console.log(name);
}

setTimeout(showName, 3000, 'Mike'); // 함수, 시간, 인수

-----------------------------------------------------------------------------------

clearTimeout : 예정된 작업을 없앤다.
// clearTimeout(tId);

const tId = function showName(name) {
  console.log(name);
}

setTimeout(showName, 3000, 'Mike'); // 함수, 시간, 인수

clearTimeout(tId); // 3초가 되기 전에 스케줄링 취소되어, 아무일도 일어나지 않는다.

-----------------------------------------------------------------------------------

function showName(name) {
  console.log(name);
}

const tId = setInterval(showName, 3000, 'Mike'); // setInterval : 계속 반복 수행, 3초 마다 Mike 찍힘

// 중간에 중단하려면, clearInterval(tId); 수행

-----------------------------------------------------------------------------------

setTimeout(function() {
  console.log(2) // 2번째 실행
}, 0); 
// 0초로 설정해도 바로 실행되지 않는다, 현재 실행중인 script가 종료된 이후에 실행
// 브라우저는 기본적으로 4ms 내외의 대기시간 존재

console.log(1);  // 1번째 실행

-----------------------------------------------------------------------------------

// setInterval, clearInterval

let num = 0;

function showTime() {
  console.log(`안녕하세요. 접속하신지 ${num++}초가 지났습니다.`);
}

setInterval(showTime, 1000);

-----------------------------------------------------------------------------------

// setInterval, clearInterval

let num = 0;

function showTime() {
  console.log(`안녕하세요. 접속하신지 ${num++}초가 지났습니다.`);
  if ( num> 5) {
    clearInterval(tId);
  }
}

const tId = setInterval(showTime, 1000);

반응형
반응형


const user = {
  name : 'Mike'
}

user.name

user.hasOwnProperty('name');

user.hasOwnProperty('age');

-------------------------------------------------------------------------------------------------------

const user = {
  name : 'Mike',
  hasOwnProperty : function() {
console.log('hello')
  }
}

user.hasOwnProperty();

-------------------------------------------------------------------------------------------------------

const bmw = {
color : "red",
wheels : 4,
navigation : 1,
drive() {
  console.log("drive..");
},
};

const benz = {
color : "black",
wheels : 4,
navigation : 1,
drive() {
  console.log("drive..");
},
};

const audi = {
color : "blue",
wheels : 4,
drive() {
  console.log("drive..");
},
}; 

-------------------------------------------------------------------------------------------------------

const car = {
wheels : 4,
drive() {
  console.log("drive..");
},
};

const bmw = {
color : "red",
navigation : 1,
};

const benz = {
color : "black",
};

const audi = {
color : "blue",
}; 

bmw.__proto__ = car;
benz.__proto__ = car;
audi.__proto__ = car;

bmw
bmw.color;
bmw.wheels;


-------------------------------------------------------------------------------------------------------

const car = {
wheels : 4,
drive() {
  console.log("drive..");
},
};

const bmw = {
color : "red",
navigation : 1,
};

bmw.__proto__ = car;

const x5 = {
color : "white",
name : "x5",
};

x5.__proto__ = bmw;

x5.name;

x5.color;

x5.navigation;

for( p in x5){
console.log(p);
}

x5;
Object.keys(x5);
Object.values(x5);

for( p in x5){
  if(x5.hasOwnProperty(p)){
console.log('o', p);
  } else {
  console.log('x', p);
  }
}


-------------------------------------------------------------------------------------------------------

const car = {
  wheels : 4,
  drive() {
console.log("drive..");
  },
};


const Bmw = function ( color ){
  this.color = color;
};

const x5 = new Bmw("red");
const z4 = new Bmw("blue");

x5.__proto__ = car;
z4.__proto__ = car;

x5

5.wheels

-------------------------------------------------------------------------------------------------------

const Bmw = function ( color ){
  this.color = color;
};


Bmw.prototype.wheels = 4;
Bmw.prototype.drive = function() {
  console.log("drive..");
};

Bmw.prototype.navigation = 4;
Bmw.prototype.stop = function() {
  console.log("STOP!..");
};


const x5 = new Bmw("red");
const z4 = new Bmw("blue");

//x5.__proto__ = car;
//z4.__proto__ = car;


x5.wheels;
x5.drive();

x5.stop();

z4

z4 instanceof Bmw

z4.constructor === Bmw

-------------------------------------------------------------------------------------------------------

const Bmw = function ( color ){
  this.color = color;
};

Bmw.prototype = {
  wheels : 4,
  drive() {
console.log("drive..");
  },
  navigation : 1,
  stop() {
    console.log("STOP!");
  },
};

const x5 = new Bmw("red");
const z4 = new Bmw("blue");

z4.constructor === Bmw // false

-------------------------------------------------------------------------------------------------------

const Bmw = function ( color ){
  this.color = color;
};

Bmw.prototype = {
  constructor : Bmw,
  wheels : 4,
  drive() {
console.log("drive..");
  },
  navigation : 1,
  stop() {
    console.log("STOP!");
  },
};

const x5 = new Bmw("red");
const z4 = new Bmw("blue");

z4.constructor === Bmw  // true

-------------------------------------------------------------------------------------------------------

const Bmw = function (color) {
  this.color = color;
};

const x5 = new Bmw("red");

-------------------------------------------------------------------------------------------------------


const Bmw = function (color) {
  const c = color;
  this.getColor = function () {
    console.log(c);
  };
};

const x5 = new Bmw("red");

-------------------------------------------------------------------------------------------------------

반응형