programming language/Javascript

Javascript ๊ธฐ์ดˆ ์ •๋ฆฌ

moaoh 2021. 9. 11. 14:42

JS๋Š” ์ด๋ ‡๊ฒŒ ์จ์•ผ ํ•œ๋‹ค.  ๊ฐœ๋… ์ •๋ฆฌ

js ์‚ฌ์šฉ๋ฐฉ๋ฒ•

js ๋‚ด์šฉ์„ ๋ถˆ๋Ÿฌ์˜ฌ ๊ฒฝ์šฐ์—๋Š” html์„ ํ†ตํ•ด์„œ ๋ถˆ๋Ÿฌ์™€์•ผ ํ•œ๋‹ค
css๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋งฅ๋ฝ
ํ†ต์ƒ์ ์œผ๋กœ jsํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์€ body์— ๋งจ ์•„๋ž˜์— ์ ๋Š”๋‹ค.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    **<script src="app.js"></script>**
</body>
</html>

js์— ํฌ๊ธฐ๊ฐ€ ํฌ๋‹ค๋ฉด ๋ถˆ๋Ÿฌ์˜ค๋Š”๋ฐ ์‹œ๊ฐ„์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ๋Š”๋ฐ
js๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์œ„์น˜๊ฐ€ ์ƒ๋‹จ์— ์œ„์น˜ํ•˜๊ฒŒ ๋˜๋ฉด ๊ธฐ๋ณธ์ ์ธ ์›นํŽ˜์ด์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
๊ทธ๋Ÿฌ๋ฏ€๋กœ js๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์œ„์น˜๋ฅผ ํ•˜๋‹จ์œผ๋กœ ๋ฐฐ์น˜๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ 


js ๋ณ€์ˆ˜ ์ด๋ฆ„ (camelcase)

const my_name = "jun"; โŒ python / sanke_case
const myName = "jun" ; โญ• js / camelcase

js์— ๊ฒฝ์šฐ ๋ณ€์ˆ˜์— ์ด๋ฆ„์„ ์ง€์„ ๋•Œ ๊ณต๋ฐฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ณต๋ฐฑ ๋’ค์— ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ํ•˜๋Š” ํ˜•์‹์œผ๋กœ ํ•œ๋‹ค
python๊ณผ๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹.


์ฝ”๋“œ ์ž‘์„ฑ ๋ฐฉ๋ฒ•

// CSS

.active {
    color: cornflowerblue;
}
// JS

const h1 = document.querySelector("div.hello h1");

function handTitleClick() {
    const clickedClass = "clicked"
    if (h1.className === "clicked") {
        h1.className = "";
    }
    else {
        h1.className = "clicked";
    }
}

h1.addEventListener("click", handTitleClick);

// ====================================================

const h1 = document.querySelector("div.hello h1");

function handTitleClick() {
    const clickedClass = "clicked"
    if (h1.classList.contains(clickedClass)) {
        h1.classList.remove(clickedClass);
    }
    else {
        h1.classList.add(clickedClass);
    }
}

h1.addEventListener("click", handTitleClick);

// ====================================================

const h1 = document.querySelector("div.hello h1");

function handTitleClick() {
    const clickedClass = "clicked"
    h1.classList.toggle(clickedClass);
}

h1.addEventListener("click", handTitleClick);

// ====================================================

์œ„์— ์ฝ”๋“œ์— ๊ฒฝ์šฐ ๋ชจ๋‘ ๊ฐ™์€ ๋™์ž‘์„ ํ•˜์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ์ ๋Š” ๋ฐฉ๋ฒ•์ด ๋ชจ๋‘ ๋‹ค๋ฅด๋‹ค.
style๊ณผ ๊ด€๋ จ๋œ ๋‚ด์šฉ๋“ค์€ JS์—์„œ ์„ ์–ธ์„ ํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ CSS์—์„œ ์„ ์–ธ์„ ํ•˜๊ณ  JS์—์„œ CSS ๋‚ด์šฉ์„
๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์ด ๊น”๋”ํ•˜๊ณ  ๊ฐ€์žฅ ๋ณด๊ธฐ ์ข‹๋‹ค.


HTML๊ณผ JS

const loginForm = document.querySelector(".login-form");
const loginInput = loginForm.querySelector("input");
const loginButton = loginForm.querySelector("button");

function onLoginBthClick() {
    const username = loginInput.value;
    if (username === "") {
        alert("Please write your name");
    }
    else if (username.length > 15) {
        alert("Your name is too long.");
    }
    else {

    }
    console.log("click!!");
}

loginButton.addEventListener("click", onLoginBthClick);
<form class="login-form">
        <input required maxlength="15" type="text" placeholder="what is your name?"/>
        <input type="submit" value="Log In">
    </form>

js๋งŒ ์‚ฌ์šฉํ•ด์„œ value๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค๋˜์ง€ length๊ธธ์ด๋ฅผ ํ™•์ธํ•œ๋‹ค๋˜์ง€ ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ
html ๋‚ด๋ถ€์— ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ์˜ต์…˜ ๊ฐ’๋“ค์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด ์ข‹๊ณ  ์—†๋‹ค๋ฉด
js๋ฅผ ํ†ตํ•ด์„œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.


JS ๋ฌธ๋ฒ• ์ •๋ฆฌ


๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ๋ฒ•

var, let, const

const
let

const a = "hello"
const b = 3

let a1 = "hello"
let b1 = 3
let myName = "jun"

myName = "junmo"

var์— ๊ฒฝ์šฐ ๋„ˆ๋ฌด ๊ตฌ์‹์ด๊ณ  ๋ณ€์ˆ˜ ์„ ์–ธํ•œ ๊ณณ์„ ๋ดค์„ ๋•Œ ์–ด๋–ค ์šฉ๋„๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ณ€์ˆ˜์ธ์ง€,
๊ฐ’์ด ๋ณ€ํ•˜๋”๋ผ๋„ ๋ณ€ํ–ˆ๋Š”์ง€ ์•ˆ ๋ณ€ํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์‚ฌ์šฉ์„ ์•ˆ ํ•œ๋‹ค.
const์— ๊ฒฝ์šฐ๋Š” ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์ง€๋งŒ
let์— ๊ฒฝ์šฐ์—๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ const๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ๋ฐ”๋€” ์ผ์ด ์žˆ์„ ๋•Œ์—๋งŒ let์„ ์‚ฌ์šฉํ•œ๋‹ค.


list

const me = "jun"
const day = [1, 2, false, true, null, undefined, "text", me];

๋ฐฐ์—ด ์•ˆ์— ์–ด๋– ํ•œ ํ˜•์‹์ด๋“  ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.
๋‹ค๋ฅธ ํ˜•์‹๊ณผ ์„ž์—ฌ๋„ ์ƒ๊ด€ โŒ


object ์ƒ์„ฑ

const player = {
    name: "jun",
    points: 42,
    fat: true,
}

console.log(player)
console.log(player.name)

player.fat = false;

player.lastName = "mo"

๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ์„ ์–ธ ๋ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
๋‚ด๋ถ€์— ์žˆ๋Š” ๊ฐ’๋“ค์€ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
๋‚ด๋ถ€์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ ๊ทธ๋ƒฅ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

const player = {
    name: "jun",
    sayHello: function() {
        console.log("hello!")
    }
}

console.log(player.name)
player.sayHello()

class์ฒ˜๋Ÿผ ๋‚ด๋ถ€์— ํ•จ์ˆ˜๋ฅผ ๋„ฃ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค


function

function sayHello(nameOFPerson) {
    console.log("hello my name is" + nameOFPerson);
}

sayHello("jun")
const age = 23
console.log(isNaN(age))

๋ช…๋ น์–ด ์ฐพ๊ธฐ

document.dir()

์œ„์™€ ๊ฐ™์€ ํ˜•์‹์„ ์‚ฌ์šฉํ•ด์„œ ์ง€๊ธˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๊ฐ€ ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.


HTML ๋‚ด์šฉ ๊ฐ€์ ธ์˜ค๊ธฐ

const title = document.getElementsByClassName();

const title = document.getElementById();

const title = document.querySelector();

const title = document.querySelectorAll();

์œ„์™€ ๊ฐ™์ด ํฌ๊ฒŒ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค.
getElementById(); ์— ๊ฒฝ์šฐ๋Š” id๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋ฏ€๋กœ ์ค‘๋ณต์ด ๋  ์ˆ˜ ์—†์œผ๋‹ˆ 1๊ฐœ๋งŒ ๊ฐ€์ ธ์˜จ๋‹ค.
getElementsByClassName(); ์— ๊ฒฝ์šฐ ์ค‘์ฒฉ๋˜๋Š” ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋ฆฌ์ŠคํŠธ ํ˜•์‹์œผ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค
document.querySelector(); : ๊ฐ€์žฅ ๋จผ์ € ๋ฐœ๊ฒฌ๋œ 1๊ฐœ๋งŒ ๊ฐ€์ ธ์˜จ๋‹ค.
document.querySelectorAll(); : ๋ชจ๋‘ ๊ฐ€์ ธ์˜จ๋‹ค.

const title = document.getElementById("title");
console.log(title)
title.innerText = "Got you!"
console.log(title)

console.dir(title)
console.log(title.className)
console.log(title.id)

์œ„์™€ ๊ฐ™์€ ํ˜•์‹์„ ์‚ฌ์šฉํ•ด์„œ id="title"์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ณ 
ํ•ด๋‹น ๋‚ด์šฉ๋„ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
์ฆ‰ ์–ด๋–ค HTML element์ด๋“ ์ง€ ๊ฐ„์— ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

const title = document.querySelector(".hello h1");
console.log(title);

// ==================================================

const title = document.querySelector("div h1");
console.log(title);

์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์ฒ˜๋Ÿผ CSSํ˜•์‹์œผ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
๊ฐ€์žฅ ์•Œ์•„๋ณด๊ธฐ ์‰ฝ๊ณ  ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์ด๋ฉด ๋ชจ๋‘ ์ฐพ์„ ์ˆ˜ ์žˆ์–ด์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

const title = document.querySelectorAll(".hello h1");
console.log(title);

// ==================================================

const title = document.querySelectorAll(".hello h1:last-child");
console.log(title);

์ด๋Ÿฌํ•œ ํ˜•์‹์œผ๋กœ ๋ชจ๋‘ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์ง€์ •ํ•ด์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค


addEventListener

const h1 = document.querySelector("div.hello h1");

function handTitleClick() {
    h1.style.color = "blue";
}
h1.addEventListener("click", handTitleClick);
h1.onclick = handleMouseLeave;

h1์„ ํด๋ฆญํ–ˆ์„ ๊ฒฝ์šฐ ์ด๋ฒคํŠธ๋ฅผ ์ฃผ๋Š” ๊ฒƒ๋„ JS์—์„œ ๊ฐ€๋Šฅํ•˜๋‹ค

h1.addEventListener("click", handTitleClick);
h1.onclick = handTitleClick;

์œ„์— 2๊ฐ€์ง€ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ ์ „์ž์— ๋ฐฉ๋ฒ•์ด ์กฐ๊ธˆ ๋” ํšจ์œจ๊ณผ ๋ฒ”์œ„์„ฑ์ด ์ข‹์•„์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค

console.div()

.
.
.
onanimationend: null
onanimationiteration: null
onanimationstart: null
onauxclick: null
onbeforecopy: null
onbeforecut: null
onbeforepaste: null
onbeforexrselect: null
.
.
.

on์ด ์•ž์— ๋ถ™์€ ๊ฒƒ๋“ค์ด ์ด๋ฒคํŠธ์— ํ•ด๋‹น๋˜๋Š” ๋‚ด์šฉ๋“ค์ด๋‹ค

function handleWindowResize() {
    document.body.style.backgroundColor = "tomato";
}

window.addEventListener("resize", handleWindowResize);

document.body ํ˜•์‹์ฒ˜๋Ÿผ ๊ฐ€์ง€๊ณ  ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์• ๋“ค์€ ํ•œ์ •๋˜์–ด์žˆ๋‹ค.
body, head, title ์ด ์ •๋„๊ฐ€ ๋‹ค๋ผ์„œ div ๊ฐ™์€ ์• ๋“ค์„ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์œผ๋ฉด querySelector์ฒ˜๋Ÿผ ๋Œ์–ด์™€์•ผ ํ•œ๋‹ค


preventDefault

function onLoginSubmit(event) {
    event.preventDefault();
    console.log(event);
}

loginForm.addEventListener("submit", onLoginSubmit);

๊ธฐ๋ณธ์ ์œผ๋กœ ํ•จ์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ํ•จ์ˆ˜๋ฅผ ์ง€๋‚˜์นœ ํ›„ ์‹คํ–‰์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜ ๋„์ค‘์—
preventDefault์ด๋ผ๋Š” ๊ฐ’์„ ๋‘๊ฒŒ ๋˜๋ฉด ๋ชจ๋“  ํ–‰๋™๋“ค์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.


localStorage

function onLoginSubmit(event) {
    event.preventDefault();
    loginForm.classList.add(HIDDEN_CLASSNAME);
    const username = loginInput.value;
    **localStorage.setItem("username", username);**
    greeting.innerText = `Hello ${username}`;
    greeting.classList.remove(HIDDEN_CLASSNAME);
}

์›นํŽ˜์ด์ง€์—์„œ ์ œ๊ณตํ•˜๋Š” DB๋“ค ์ค‘ 1๊ฐœ์ด๋‹ค.
์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ username์ด๋ผ๋Š” ๊ฐ’์„ ํŽ˜์ด์ง€ DB์— ์ €์žฅํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


์‹œ๊ฐ„๋Œ€์— ๋”ฐ๋ผ ์ง„ํ–‰

์ผ์ • ์‹œ๊ฐ„๋งˆ๋‹ค ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ JS์—์„œ ์ง€์›์„ ํ•˜๊ณ  ์žˆ๋‹ค.

setInterval()

function sayHello() {
    console.log("HELLO")
}

setInterval(sayHello, 5000);

function setInterval(function, number)
์œ„์— ์ฝ”๋“œ๋Š” 5์ดˆ๋งˆ๋‹ค console.log๋กœ HELLO๋ผ๋Š” ๊ฐ’์„ ์ถœ๋ ฅํ•ด๋ผ ๋ผ๋Š” ๋œป์ด๋‹ค

setTimeout()

function sayHello() {
    console.log("HELLO")
}

setTimeout(sayHello, 5000);

function setTimeout(function, number)
์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋™์ž‘ํ•˜์ง€๋งŒ ms๊ฐ€ ์ง€๋‚œ ํ›„๋ถ€ํ„ฐ ์‹คํ–‰์ด ๋œ๋‹ค.


padStart

**String.padStart(number, string)**

const s = "1".padStart(2, "0");
>> "01"

const s = "10".padStart(2, "0");
>> "10"

String.padStart(number, string)
String์˜ ๊ธธ์ด๊ฐ€ number๋ณด๋‹ค ์งง๋‹ค๋ฉด String ์•ž์ชฝ์— string ๋ฌธ์ž๋ฅผ ๋ถ™์—ฌ ๋„ฃ๋Š”๋‹ค.
String์˜ ๊ธธ์ด๊ฐ€ ๋” ๊ธธ๋‹ค๋ฉด ๋ฌด์‹œ

padEnd

**String.padEnd(number, string)**

const s = "1".padEnd(2, "0");
>> "10"

const s = "10".padEnd(2, "0");
>> "10"

String.padEnd(number, string)
String์˜ ๊ธธ์ด๊ฐ€ number๋ณด๋‹ค ์งง๋‹ค๋ฉด String ๋’ค์ชฝ์— string ๋ฌธ์ž๋ฅผ ๋ถ™์—ฌ ๋„ฃ๋Š”๋‹ค.
String์˜ ๊ธธ์ด๊ฐ€ ๋” ๊ธธ๋‹ค๋ฉด ๋ฌด์‹œ


createElement

document.createElement("img");
>> <img>

JS๋ฅผ ํ†ตํ•ด์„œ HTML element๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.


JSON

toDos
>> (3) ["a", "b", "c"]

JSON.stringify(toDos)
>> "[\"a\",\"b\",\"c\"]"

JSON.parse(JSON.stringify(toDos))
>> (3) ["a", "b", "c"]

localStorage.setItem

localStorage.setItem("todos", JSON.stringify(toDos));

Storage.setItem(key: string, value: string)
DB์— ๊ฐ’์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

localStorage.getItem

localStorage.getItem("todos");
>> "[\"a\",\"b\",\"c\"]"

Storage.getItem(key: string)
key์— ํ•ด๋‹นํ•˜๋Š” value ๋ฝ‘์•„์˜จ๋‹ค.

JSON.stringify

JSON.stringify(toDos)
>> "[\"a\",\"b\",\"c\"]"

js์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด๋‚˜ ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜์‹œํ‚จ๋‹ค.

JSON.parse

JSON.parse(localStorage.getItem("todos"));
>> (3) ["a", "b", "c"]

๋ฌธ์ž์—ด ๊ตฌ๋ฌธ์„ ํ•ด์„ํ•˜์—ฌ ๋ฐฐ์—ด์˜ ํ˜•์‹์œผ๋กœ ๋ฐ”๊พผ๋‹ค.


Array.prototype.forEach()

function Funstion(item) {

}

array.forEach(Funstion);

array์˜ ๊ฐ๊ฐ ์š”์†Œ๋งˆ๋‹ค funstion์„ ๋Œ€์ž…ํ•˜์—ฌ ์‹คํ–‰์‹œํ‚จ๋‹ค.
๋ฐฐ์—ด์— ์š”์†Œ๋“ค์„ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋Œ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•?
ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋  ๊ฒฝ์šฐ ์ง€๊ธˆ array์— ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ์— ์ •๋ณด๋ฅผ ํ•จ์ˆ˜์— ๋„˜๊ธด๋‹ค.

Array.prototype.filter()

function Funstion(item) {

}

newArray = array.filter(Funstion);

forEach์™€ ๋˜‘๊ฐ™์ด ๋™์ž‘ํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด array๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
Funstion์—์„œ true๋ฅผ ๋ฐ˜ํ™˜ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น ๋‚ด์šฉ์„ ๋„ฃ๊ณ  ๋ฐ˜ํ™˜ ๊ฐ’์ด false๋ผ๋ฉด ํ•ด๋‹น ๋‚ด์šฉ์€ ๋ฌด์‹œํ•œ๋‹ค.


Navigator

Geolocation.getCurrentPosition()

function onGeoOk(position) {
    const lng = position.coords.longitude;
    const lat = position.coords.latitude;
    console.log(lng, lat);
}

function onGeoError() {
    alert("can't find you. No weather for you.")
}

navigator.geolocation.getCurrentPosition(onGeoOk, onGeoError);

navigator.geolocation.getCurrentPosition(success[, error[, [options]])
ํ˜„์žฌ ์œ ์ €์˜ ๋‹ค์–‘ํ•œ ์ •๋ณด๋“ค์„ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค ์œ„์น˜๋‚˜ ๋“ฑ๋“ฑ
์ง€๊ธˆ์€ ํ˜„์žฌ ์ ‘์†ํ•œ ์œ ์ €์˜ ์œ„์น˜์— ๋”ฐ๋ฅธ ๋‚ ์”จ๋ฅผ ๋ฐ›์•„์˜ค๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์— ์œ„๋„์™€ ๊ฒฝ๋„๋ฅผ ๋ฐ›์•„์™”๋‹ค.

 

Members

Enter your email address and we will send you a link to reset your password.

home.openweathermap.org

api๋ฅผ ์‚ฌ์šฉํ•ด์„œ weather์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค.


fetch

fetch(url);

fetch๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น url์— ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
url์„ ๋ณด๋‚ด์„œ ํ•ด๋‹น ์„œ๋ฒ„์—์„œ ๊ฐ’์„ ๋ฐ›์•„์™€์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค.

๋Œ“๊ธ€์ˆ˜0