11 ๋ถ„ ์†Œ์š”

๐Ÿ“š JAVASCRIPT


๐Ÿ“š Basic

JAVASCRIPT์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€ ?

JavaScript๋Š” ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜์˜ ์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐœ๋… ( ๋ช…๋ นํ˜•, ํ•จ์ˆ˜ํ˜•, ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ ) ์„ ์ง€์›ํ•œ๋‹ค.

์›น์„ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ( HTML, CSS, JavaScript ) ์ค‘ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜๋Š” ์œ ์ผํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณ„๋„์˜ ์ปดํŒŒ์ผ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด ( ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ์ฝ์–ด ๋‚ด๋ ค๊ฐ€๋ฉฐ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ) ์ด๋‹ค.

์›น ๋ธŒ๋ผ์šฐ์ €๋Š” HTML ( HTML + CSS ) ๊ณผ JS๋ฅผ ๊ฐ™์ด ๋‹ค์šด๋กœ๋“œ ํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์˜ JavaScript Engine์ด JS๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
๊ฐ ๋ธŒ๋ผ์šฐ์ €๋ณ„ JS ์—”์ง„ ( Chrome์˜ V8 ์—”์ง„ ๋“ฑ .. )์€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์™€ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์žฅ์ ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋น„๊ต์  ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋Š๋ฆฐ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•ด์ค€๋‹ค.

JS๋Š” ๋™์ ์œผ๋กœ ์ปจํ…์ธ ๋ฅผ ๋ฐ”๊พธ๊ณ  ์›€์ง์ด๋Š” ์ด๋ฏธ์ง€๋‚˜ ๋งŽ์€ ๋‹ค๋ฅธ ์ผ๋“ค์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ด๋‹ค.

JAVASCRIPT์˜ ์„ ์–ธ

HTML์—์„œ JS๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด script tag๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. src์™€ type ์†์„ฑ์„ ์‚ฌ์šฉํ•ด์„œ JS๋ฅผ ์„ ์–ธํ•œ๋‹ค.

  • src
    ์™ธ๋ถ€์˜ JSํŒŒ์ผ์„ HTML๋ฌธ์„œ์— ํฌํ•จํ•  ๋•Œ ์‚ฌ์šฉ ( ์ƒ๋žต ๊ฐ€๋Šฅ )
  • type
    ๋ฏธ๋””์–ด ํƒ€์ž…์„ ์ง€์ •ํ•  ๋•Œ, JS์ฝ”๋“œ๋Š” โ€˜text/javascriptโ€™๋กœ ์ง€์ •

script tag๋Š” HTML ํŒŒ์ผ ๋‚ด๋ถ€์˜ head ๋‚˜ body ์•ˆ ์–ด๋Š ๊ณณ์—์„œ ์„ ์–ธ ๊ฐ€๋Šฅํ•˜๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๊ถŒ์žฅ์€ body ์•ˆ์— ๋๋ถ€๋ถ„์— ๋‘˜ ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML๋ถ€ํ„ฐ ํ•ด์„ํ•˜์—ฌ ํ™”๋ฉด์— ๊ทธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ๋น ๋ฅด๋‹ค๊ณ  ๋Š๋‚„ ์ˆ˜ ์žˆ๋‹ค.

JS ์ฝ”๋“œ๋ฅผ HTML ๋ฌธ์„œ ์•ˆ์— ํฌํ•จ

head tag ์— ํฌํ•จ

<html>
  <head>
    <meta charset="UTF-8" />
    <title>JavaScript ์„ ์–ธ</title>
    <script type="text/javascript">
      // ํ•จ์ˆ˜ ์„ ์–ธ
      function hello(message) {
        alert("hello" + message);
      }

      // ํ•จ์ˆ˜ ํ˜ธ์ถœ
      hello("javascript !!");
    </script>
  </head>
  <body></body>
</html>

body tag ์— ํฌํ•จ

body tag์˜ ๋งˆ์ง€๋ง‰์— ๋„ฃ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

<html>
  <head>
    <meta charset="UTF-8" />
    <title>JavaScript ์„ ์–ธ</title>
  </head>
  <body>
    <script type="text/javascript">
      // ํ•จ์ˆ˜ ์„ ์–ธ
      function hello(message) {
        alert("hello" + message);
      }

      // ํ•จ์ˆ˜ ํ˜ธ์ถœ
      hello("javascript !!");
    </script>
  </body>
</html>

์™ธ๋ถ€ JS ํŒŒ์ผ์„ HTML ๋ฌธ์„œ ์•ˆ์— ํฌํ•จ

<html>
  <head>
    <meta charset="UTF-8" />
    <title>JavaScript ์„ ์–ธ</title>
    <script src="hello.js" type="test/javascript"></script>
  </head>
  <body></body>
</html>
hello.js ์™ธ๋ถ€ํŒŒ์ผ
function hello(message){
    alert('hello' + message);
    }

    // ํ•จ์ˆ˜ ํ˜ธ์ถœ
     hello('javascript !!');

JAVASCRIPT ์ฃผ์„

JAVA์™€ ์ฃผ์„ ํ˜•ํƒœ๊ฐ€ ๊ฐ™๋‹ค.

  • ํ•œ ์ค„ ์ฃผ์„
// ํ•œ ์ค„ ์ฃผ์„ ์ž…๋‹ˆ๋‹ค.
  • ๋ธ”๋ก ์ฃผ์„
/*
    ๋ธ”๋ก ์ฃผ์„
    ์ž…๋‹ˆ๋‹ค.
*/

JAVASCRIPT ๋ณ€์ˆ˜

JavaScript๋Š” ๋™์ ํƒ€์ž… ์–ธ์–ด์ด๋‹ค.
๊ทธ๋ž˜์„œ ๋ณ€์ˆ˜์˜ ํƒ€์ž… ์ง€์ •์—†์ด ๊ฐ’์ด ํ• ๋‹น๋˜๋Š” ๊ณผ์ •์—์„œ ์ž๋™์„ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ฒฐ์ •๋œ๋‹ค.ย ยป ๊ฐ™์€ ๋ณ€์ˆ˜์— ์—ฌ๋Ÿฌ ํƒ€์ž…์˜ ๊ฐ’์„ ํ• ๋‹น ๊ฐ€๋Šฅ

JavaScript๋Š” ๋‚™ํƒ€ ํ‘œ๊ธฐ๋ฒ• ( Camel case )๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋ก  ์†Œ๋ฌธ์ž์ธ๋ฐ 2๊ฐœ ์ด์ƒ์˜ ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜๋ช…์„ ์ง€์„ ๊ฒฝ์šฐ 2๋ฒˆ์งธ ๋‹จ์–ด๋ถ€ํ„ฐ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐํ•œ๋‹ค. ( ex, userName, userAge, isSelected )

๊ธฐ์กด์—๋Š” var ํ‚ค์›Œ๋“œ๋งŒ ์กด์žฌํ–ˆ์—ˆ๋Š”๋ฐ ECMAScript 6๋ถ€ํ„ฐ๋Š” let๊ณผ const ํ‚ค์›Œ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

ํ‚ค์›Œ๋“œ ๊ตฌ๋ถ„ ์„ ์–ธ์œ„์น˜ ์žฌ์„ ์–ธ
var ๋ณ€์ˆ˜ ์ „์—ญ ๋ฒ”์œ„ ๊ฐ€๋Šฅ
let ๋ณ€์ˆ˜ ํ•ด๋‹น ๋ฒ”์œ„ ๋ถˆ๊ฐ€๋Šฅ
const ์ƒ์ˆ˜ ํ•ด๋‹น ๋ฒ”์œ„ ๋ถˆ๊ฐ€๋Šฅ


var myName = "jisoo";
var age = 15;

let count = 25;
let name = "jisoo";
let selected = true;

const con = 10;

JAVASCRIPT ์ž๋ฃŒํ˜•

์ž๋ฃŒํ˜• typeof ์ถœ๋ ฅ ๊ฐ’ ์„ค๋ช…
์ˆซ์žํ˜• number ์ •์ˆ˜ or ์‹ค์ˆ˜ํ˜•
๋ฌธ์ž์—ดํ˜• string ๋ฌธ์ž, single or double quotation ์œผ๋กœ ํ‘œ๊ธฐ
booleanํ˜• boolean true or false
undefined undefined ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ ๋˜์—ˆ์ง€๋งŒ ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ
null object ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ


undefined๊ฐ€ var๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ–ˆ์„ ๋•Œ ์ฃผ์˜ํ•ด์•ผํ•  ๋ถ€๋ถ„์ด๋‹ค.
์ด ๋ถ€๋ถ„์€ ๋ฐ‘์— ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…์—์„œ ์„ค๋ช… ํ•˜๊ฒ ๋‹ค.

์ž๋ฃŒํ˜• - ์ˆซ์ž

์ •์ˆ˜์™€ ์‹ค์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.
๋ชจ๋“  ์ˆซ์ž๋ฅผ 8 byte ์‹ค์ˆ˜ ํ˜•ํƒœ๋กœ ์ฒ˜๋ฆฌ
ํŠน์ • ์†Œ์ˆ˜์ ์„ ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•œ๋‹ค.
๊ธฐ๋ณธ ์—ฐ์‚ฐ ๊ธฐํ˜ธ๋Š” ์ผ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๊ฐ™๋‹ค.

์–ธ๋”ํ”Œ๋กœ์šฐ, ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ, 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์—ฐ์‚ฐ์— ๋Œ€ํ•ด ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค.
JS์—์„œ๋Š” ์ˆซ์ž์™€ ๊ด€๋ จ๋œ ํŠน๋ณ„ํ•œ ์ƒ์ˆ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค.

  • Infinity
    ๋ฌดํ•œ๋Œ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒ์ˆ˜
    ์–ด๋– ํ•œ ์ˆ˜๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„๊ฑฐ๋‚˜ Infinity๋ฅผ ์–ด๋– ํ•œ ์ˆ˜๋กœ ์‚ฌ์น™์—ฐ์‚ฐํ•œ ๊ฒฐ๊ณผ
  • NAN ( Not A Number )
    ๊ณ„์‚ฐ์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ˆซ์ž๊ฐ€ ์•„๋‹˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒ์ˆ˜
// ์–ธ๋”ํ”Œ๋กœ์šฐ
console.log(0 / 100); // 0
console.log(-0 / 100); // -0

// ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ
console.log(100 / 0); // Infinity
console.log(-100 / 0); // Infinity
console.log(Infinity / 0); // Infinity
console.log(-Infinity / 0); // Infinity

// NAN
console.log(0 / 0); // NAN
console.log(parseInt("1A")); // 1
console.log(parseInt("A")); // NAN

console.log(new Number("1")); // 1
console.log(new Number("1A")); // NAN

์ž๋ฃŒํ˜• - ๋ฌธ์ž์—ด

JS์—์„œ ๋ฌธ์ž์—ด์€ 16bit์˜ Unicode ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉ
๋ฌธ์ž ํ•˜๋‚˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” char ๊ฐ™์€ ๋ฌธ์žํ˜•์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. โ€˜aโ€™ ๋„ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„
์ž‘์€ ๋”ฐ์˜ดํ‘œ, ํฐ ๋”ฐ์˜ดํ‘œ ๋‘˜ ๋‹ค ์‚ฌ์šฉ๊ฐ€๋Šฅ์ด์ง€๋งŒ ํ˜ผ์šฉ ๋ถˆ๊ฐ€๋Šฅ
์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค( \ )๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ( ์ค„๋ฐ”๊ฟˆ )
๋ฐฑํ‹ฑ()์„ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค ( ์ฝ”๋“œ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ( ๋ณ€์ˆ˜๋ฅผ ์ ์„ ์ˆ˜ ์žˆ๋‹ค ) ๋ฐฑํ‹ฑ์„ ์ด์šฉํ•œ๋‹ค. )</strong> ex) var str1= ๋‹น์‹ ์˜ ์ด๋ฆ„์€ ${name} (${age})์ž…๋‹ˆ๋‹ค.`;
var str2= โ€œ๋‹น์‹ ์˜ ์ด๋ฆ„์€ โ€œ + name + โ€œ(โ€œ + age + โ€œ)์ž…๋‹ˆ๋‹ค.โ€;
var1์€ var2 ์™€ ๊ฐ™๋‹ค.

console.log("hello");           // hello
console.log('hello');           // hello
console.log("my name is "js""); //m y name is "js"
console.log("hello \nbye");     //hello
                                //bye

์ž๋ฃŒํ˜• - boolean, null, undefined

var name;
var id = null;

var n1 = 10;
var n2 = 20;

console.log(n1 == n2); // false
console.log(name); // undefined ( ๋นˆ์นธ ์ถœ๋ ฅ )
console.log(id); // null

์ž๋ฃŒํ˜• - ์ž๋™ ํ˜• ๋ณ€ํ™˜ ( ๋™์  ํƒ€์ดํ•‘, Dynamic Typing )

JS๋Š” ์ž๋ฃŒ ํ˜•์— ๋งค์šฐ ๋Š์Šจํ•œ ๊ทœ์น™์ด ์ ์šฉ๋œ๋‹ค.
โ€˜typeof ๋ณ€์ˆ˜๋ช…โ€™ ์œผ๋กœ ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•์„ ์•Œ ์ˆ˜์žˆ๋‹ค.

๋Š์Šจํ•œ ๊ทœ์น™

var msg = 40;
console.log("message" + msg); // 4040;
console.log("40" - 10); // 30;              -> '-'๋Š” ๋ฌด์กฐ๊ฑด ์•ž ๋’ค๊ฐ€ ์ˆซ์ž์—ฌ์•ผํ•˜์ง€๋งŒ
console.log("40" + 40); // 4040;            -> '+' ๋Š” ๋ฌธ์ž์—ด๋ผ๋ฆฌ๋„ ๋ง์…ˆ์„ ํ•ด์ค„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™ ํ˜• ๋ณ€ํ™˜์ด ์•ˆ๋œ๋‹ค.

console.log(parseInt(124.45) + 1); // 125
console.log(parseFloat(124.45) + 1); // 125.45

console.log("1.1" + "1.1"); // 1.11.1
console.log("+1.1" + "+1.1"); // 2.2              -> ์•ž์˜ '+'๊ฐ€ ์–‘์ˆ˜๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.

console.log("message " + msg); // message 40
msg = "hello";
console.log(msg); // hello

typeof ์ž๋ฃŒํ˜•

var test;
console.log(typeof test); // undefined

test = null;
console.log(typeof test); // object

test = {};
console.log(typeof test); // object

test = 3;
console.log(typeof test); // number

test = 3.14;
console.log(typeof test); // number

test = "TEST";
console.log(typeof test); // string

test = true;
console.log(typeof test); // boolean

JAVASCRIPT ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ… ( Variable Hoisting )

var ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๋ณ€์ˆ˜๋Š” ์ค‘๋ณตํ•ด์„œ ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
ํ˜ธ์ด์ŠคํŒ…์ด๋ž€ var ์„ ์–ธ๋ฌธ์ด๋‚˜ function ์„ ์–ธ๋ฌธ ๋“ฑ ๋ชจ๋“  ์„ ์–ธ๋ฌธ์ด ํ•ด๋‹น ๋ฒ”์œ„์˜ ์ฒ˜์Œ์œผ๋กœ ์˜ฎ๊ฒจ์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ํŠน์„ฑ์ด๋‹ค.
์ฆ‰ JS๋Š” ๋ชจ๋“  ์„ ์–ธ๋ฌธ์ด ์„ ์–ธ๋˜๊ธฐ ์ด์ „์— ์ฐธ๊ณ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋ณ€์ˆ˜์˜ ์ƒ์„ฑ
์„ ์–ธ ๋‹จ๊ณ„์™€ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„๋Š” ํ•œ ๋ฒˆ์— ์ด๋ฃจ์–ด์ง„๋‹ค.

  • ์„ ์–ธ ๋‹จ๊ณ„
    ๋ณ€์ˆ˜ ๊ฐ์ฒด์— ๋ณ€์ˆ˜๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.

  • ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„
    ๋ณ€์ˆ˜ ๊ฐ์ฒด์— ๋“ฑ๋ก๋œ ๋ณ€์ˆ˜๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น. undefined๋กœ ์ดˆ๊ธฐํ™” ๋œ๋‹ค.

  • ํ• ๋‹น ๋‹จ๊ณ„
    undefined๋กœ ์ดˆ๊ธฐํ™”๋œ ๋ณ€์ˆ˜์— ์‹ค์ œ ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค.

์˜ˆ์‹œ

console.log(num); // undefined
var num = 100;
console.log(num); // 100
{
  var num = 456;
}
console.log(num); // 456

๋จผ์ € ์ œ์ผ ์ฒซ ์ค„์ธ console.log(num);์€ error ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ ์ฝ˜์†”์—๋Š” undefined๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋ชจ๋“  ์„ ์–ธ๋ฌธ์€ Hoisting ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
var num = 100; ์ด Hoisting ๋˜์–ด ์ฒซ ์ค„ ์•ž์— var num; ์ด ์˜ฎ๊ฒจ์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค. ์ด ๋•Œ num์—๋Š” undefined๋กœ ์ดˆ๊ธฐํ™”๊ฐ€ ์ผ์–ด๋‚˜๋ฉฐ ๋‚˜์ค‘์— var num = 100; ์—์„œ ์‹ค์ œ๋กœ num์— 100์ด ํ• ๋‹น๋œ๋‹ค.

JS๋Š” ๋ธ”๋ก ๋ ˆ๋ฒจ์˜ ์Šค์ฝ”ํ”„๊ฐ€ ์•„๋‹Œ ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋งŒ ๊ฐ–๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ๊ธฐ์กด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ผ๋ฉด ๋งจ ๋งˆ์ง€๋ง‰ ์ค„์˜ ์ถœ๋ ฅ์ด 100์ด ๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ JS์—์„œ๋Š” { } ์•ˆ์—์„œ ์„ ์–ธํ•ด์ค€ 456์ด ์ถœ๋ ฅ๋œ๋‹ค.

-> ํ•ด๊ฒฐ์ฑ…์€ const๋‚˜ let์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
๊ทธ๋ž˜์„œ ํ‰์†Œ ๋ณ€์ˆ˜ ์„ ์–ธ์„ ํ•  ๋•Œ๋„ ์š”์ฆ˜์€ let์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ถ”์„ธ์ด๋‹ค.


var๋Š” ์ „์—ญ ๋ณ€์ˆ˜, let,const๋Š” ์ง€์—ญ ๋ณ€์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

JAVASCRIPT ์ƒ์ˆ˜ ( constant )

ECMAScript6 ๋ถ€ํ„ฐ ์ƒ์ˆ˜ ํ‘œํ˜„ ์ง€์›
์ƒ์ˆ˜ ํ‘œ๊ธฐ๋ฒ•์€ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‹จ์–ด ์‚ฌ์ด๋Š” โ€˜_โ€˜๋กœ ํ‘œ๊ธฐ
์ƒ์ˆ˜๊ฐ’์€ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•œ๋‹ค.

const LIST_COUNT = 10;
const SELECTED = false;

JAVASCRIPT ์—ฐ์‚ฐ์ž ( operator )

๊ธฐ์กด JAVA ์—ฐ์‚ฐ์ž๋ž‘ ๊ฑฐ์˜ ๋น„์Šทํ•˜๋‹ค.
๋‹ค๋ฅธ ๊ฒƒ ( ๋งŽ์ด ์‚ฌ์šฉ ) - ์‚ฐ์ˆ , ๋น„๊ต, ๋…ผ๋ฆฌ, ๊ธฐํƒ€

  • delete
    ํ”„๋กœํผํ‹ฐ๋ฅผ ์ œ๊ฑฐ

-in
ํ”„๋กœํผํ‹ฐ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ ( for๋ฌธ์—์„œ ์“ฐ์ธ๋‹ค )

  • typeof
    ํ”ผ์—ฐ์‚ฐ์ž ํƒ€์ž…์„ ๋ฆฌํ„ด

  • ==
    ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธ ( ํƒ€์ž… ๋น„๊ต X )

  • !=
    ๊ฐ’์ด ๊ด€๊ณ„ํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธ ( ํƒ€์ž… ๋น„๊ต X )

  • ===
    ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธ ( ํƒ€์ž… ํฌํ•จ )

  • !==
    ๊ฐ’์ด ๊ด€๊ณ„ํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธ ( ํƒ€์ž… ํฌํ•จ )

JAVASCRIPT ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ ( conditional, loop )

๊ธฐ์กด JAVA ์—ฐ์‚ฐ์ž๋ž‘ ๊ฑฐ์˜ ๊ฐ™๋‹ค.

for๋ฌธ


for(var ๋ณ€์ˆ˜ in ๋ฐฐ์—ด or ๊ฐ์ฒด){
    //์‹คํ–‰๊ตฌ๋ฌธ
    //๋ณ€์ˆ˜์—๋Š” ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค
    //๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ๋ช…์ด ๋‹ด๊น€
}

JAVASCRIPT ๊ฐ์ฒด ( object )

  • ๊ฐ์ฒด๋Š” ์ด๋ฆ„๊ณผ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ Property ( ํ•„๋“œ ( ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„ )์™€ ๋ฉ”์„œ๋“œ ๊ฐ„ ๊ธฐ๋Šฅ์˜ ์ค‘๊ฐ„์ธ ํด๋ž˜์Šค ๋ฉค๋ฒ„์˜ ํŠน์ˆ˜ํ•œ ์œ ํ˜• ) ์˜ ์ง‘ํ•ฉ
  • ๋ฌธ์ž์—ด, ์ˆซ์ž, boolean, null, undefined๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฐ’์€ ๊ฐ์ฒด์ด๋‹ค.
  • JS ๊ฐ์ฒด๋Š” Key ์™€ Value ๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœํผํ‹ฐ ๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค.
  • ์ „์—ญ ๊ฐ์ฒด๋ฅผ ์ œ์™ธํ•˜๊ณ  JS ๊ฐ์ฒด๋Š” ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • JS ๊ฐ์ฒด๋Š” Prototype ์ด๋ผ๋Š” ํŠน๋ณ„ํ•œ ํ”„๋กœํผํ‹ฐ๋ฅผ ํฌํ•จํ•œ๋‹ค.

๊ฐ์ฒด - ์ƒ์„ฑ

๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.
๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด, Object ์ƒ์„ฑ์ž ํ•จ์ˆ˜, ์ƒ์„ฑ์ž ํ•จ์ˆ˜

๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด

var student = {
  name: "๊น€์ˆ˜์ง€",
  area: "๊ตฌ๋ฏธ",
  classNum: 4,
  info: function () {
    console.log(this.name + "๋Š”" + this.area + this.classNum + "๋ฐ˜");
  },
};

console.log(typeof student); // object
console.log(student); // {name: '๊น€์ˆ˜์ง€', area: '๊ตฌ๋ฏธ', classNum: 4, info: f}
student.info(); // ๊น€์ˆ˜์ง€๋Š” ๊ตฌ๋ฏธ4๋ฐ˜

Object ์ƒ์„ฑ์ž ํ•จ์ˆ˜

var student = new Object();
// property ์ถ”๊ธฐ
student.name = "๊น€์ˆ˜์ง€";
student.area = "๊ตฌ๋ฏธ";
student.classNum = 4;
student.info = function () {
  console.log(this.name + "๋Š”" + this.area + this.classNum + "๋ฐ˜");
};

console.log(typeof student); // object
console.log(student); // {name: '๊น€์ˆ˜์ง€', area: '๊ตฌ๋ฏธ', classNum: 4, info: f}
student.info(); // ๊น€์ˆ˜์ง€๋Š” ๊ตฌ๋ฏธ4๋ฐ˜

์ƒ์„ฑ์ž ํ•จ์ˆ˜

  • ๋™์ผํ•œ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ–๋Š” ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ์œ„ ๋‘ ๋ฐฉ๋ฒ•์€ ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ž‘์„ฑ
  • ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ํ…œํ”Œ๋ฆฟ(ํด๋ž˜์Šค)์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋™์ผํ•œ ๊ฐ์ฒด ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๊ฐ„๋‹จํžˆ ์ƒ์„ฑ ๊ฐ€๋Šฅ
  • ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ํ”„๋กœ๊ทธ๋žจ์€ ์ด ๋ฐฉ๋ฒ•์ด ์ œ์ผ ์„ ํ˜ธ ๋  ๊ฒƒ ๊ฐ™๋‹ค !! ( ๋‡Œํ”ผ์…œ )
// ์ƒ์„ฑ์ž ํ•จ์ˆ˜ - ๋ฐ˜๋ณต์ ์ธ ๋ถ€๋ถ„ ์ฒ˜๋ฆฌ
function Student(name, area, classNum) {
  this.name = name;
  this.area = area;
  this.classNum = classNum;
  this.info = function () {
    console.log(this.name + "๋Š”" + this.area + this.classNum + "๋ฐ˜");
  };
}

// ๊ฐ์ฒด ์ƒ์„ฑ
var student1 = new Student("๊น€์ˆ˜์ง€", "๊ตฌ๋ฏธ", 4);
var student2 = new Student("์ด์ˆ˜์ง€", "์„œ์šธ", 7);

console.log(typeof student1); // object
console.log(typeof student2); // object

console.log(student1); // {name: '๊น€์ˆ˜์ง€', area: '๊ตฌ๋ฏธ', classNum: 4, info: f}
console.log(student2); // {name: '์ด์ˆ˜์ง€', area: '์„œ์šธ', classNum: 7, info: f}

student1.info(); // ๊น€์ˆ˜์ง€๋Š” ๊ตฌ๋ฏธ4๋ฐ˜
student2.info(); // ์ด์ˆ˜์ง€๋Š” ์„œ์šธ7๋ฐ˜

๊ฐ์ฒด - ์†์„ฑ

์†์„ฑ ๊ฐ’ ์กฐํšŒ

  • ๊ฐ์ฒด๋Š” dot(.)์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋Œ€๊ด„ํ˜ธ([])๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์†์„ฑ ๊ฐ’์— ์ ‘๊ทผํ•œ๋‹ค. ๋Œ€๊ด„ํ˜ธ ๋‚ด์— ๋“ค์–ด๊ฐ€๋Š” ํ”„๋กœํผํ‹ฐ ์ด๋ฆ„์€ ๋ฐ˜๋“œ์‹œ ๋ฌธ์ž์—ด์ด์—ฌ์•ผ ํ•œ๋‹ค.
  • ๊ฐ์ฒด์— ์—†๋Š” ์†์„ฑ์— ์ ‘๊ทผํ•˜๋ฉด undefined๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
var student = {
  name: "๊น€์ˆ˜์ง€",
  area: "๊ตฌ๋ฏธ",
  classNum: 4,
};

// ๊ฐ์ฒด ์†์„ฑ์ด ์ ‘๊ทผ
console.log(student.classNum); // dot ํ‘œ๊ธฐ๋ฒ•
console.log(student["classNum"]); // [] ํ‘œ๊ธฐ๋ฒ•

// ์†์„ฑ๋ช…์— ์—ฐ์‚ฐ์ž๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ []๋งŒ ๊ฐ€๋Šฅ
console.log(student.name); // NaN
console.log(student["name"]); // ๊น€์ˆ˜์ง€

์†์„ฑ ๊ฐ’ ๋ณ€๊ฒฝ, ์ถ”๊ฐ€, ์ œ๊ฑฐ

  • ์†์„ฑ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” dot(.)๋‚˜ ๋Œ€๊ด„ํ˜ธ([])๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๊ฐ์ฒด์— ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๊ฒฝ์šฐ ๊ทธ ์†์„ฑ์ด ์—†์„ ๋•Œ ์•Œ์•„์„œ ์†์„ฑ์ด ์ถ”๊ฐ€๋œ๋‹ค.
  • delete ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ์†์„ฑ ์ œ๊ฑฐ
var student ={
    name : '๊น€์ˆ˜์ง€',
    area : '๊ตฌ๋ฏธ',
    classNum : 4
};

// ์†์„ฑ์˜ ๊ฐ’ ๋ณ€๊ฒฝ
student.classNum = 7;
student['area'] = '์„œ์šธ';

console.log(student.['classNum']);  // 7
console.log(student.area);          // ์„œ์šธ

// ์†์„ฑ ์ถ”๊ฐ€
student.tel = '010-1234-5678';
console.log(student.tel);           // 010-1234-5678

// ์†์„ฑ ์ œ๊ฑฐ
delete student.tel;
console.log(student.tel);           // undefined

๊ฐ์ฒด - ์ฐธ์กฐ

  • ๊ฐ์ฒด๋Š” ๋ณต์‚ฌ๋˜์ง€ ์•Š๊ณ  ์ฐธ์กฐ๋œ๋‹ค.
  • JS์—์„œ ์›์‹œ ( Primitive ) ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์•„๋‹Œ ๋ชจ๋“  ๊ฐ’์€ ์ฐธ์กฐ ํƒ€์ž…์ด๋‹ค.
  • ์ฐธ์กฐ ํƒ€์ž…์€ Object , Array , Date , Error ๋ฅผ ํฌํ•จํ•œ๋‹ค.
  • ํƒ€์ž… ํ™•์ธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” typeof๊ฐ€ ์žˆ๋‹ค. ( null์€ ์›์‹œํƒ€์ž…์ด์ง€๋งŒ typeof ์—ฐ์‚ฐ์ž์—์„œ object๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. )
var student = {
  name: "๊น€์ˆ˜์ง€",
  area: "๊ตฌ๋ฏธ",
  classNum: 4,
};

var x = student;
x.area = "์„œ์šธ";
console.log(x.area); // ์„œ์šธ

๊ฐ์ฒด - ๋ถ„๋ฅ˜

JAVASCRIPT ํ•จ์ˆ˜ ( function )

JavaScript์—์„œ ํ•จ์ˆ˜๋Š” ์ผ๊ธ‰ ๊ฐ์ฒด(first-class)์ด๋‹ค.
ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜, ๊ฐ์ฒด, ๋ฐฐ์—ด ๋“ฑ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ณ  ๋‹ค๋ฅธ ํ•จ์ˆ˜์— ์ „๋‹ฌํ•˜๋Š” ์ธ์ž ๋˜๋Š” ๋ฆฌํ„ด ๊ฐ’์œผ๋กœ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋„์ค‘์—๋„ ๋™์ ์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ•จ์ˆ˜ - ์„ ์–ธ, ํ˜ธ์ถœ

  • ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ
function ํ•จ์ˆ˜์ด๋ฆ„( ๋งค๊ฐœ๋ณ€์ˆ˜1, ๋งค๊ฐœ๋ณ€์ˆ˜2  ... ){
    // ํ•จ์ˆ˜ ๋‚ด์šฉ
}
  • ํ•จ์ˆ˜ ํ‘œํ˜„์‹
var ํ•จ์ˆ˜์ด๋ฆ„ = function( ๋งค๊ฐœ๋ณ€์ˆ˜1, ๋งค๊ฐœ๋ณ€์ˆ˜2  ... ){
    // ํ•จ์ˆ˜ ๋‚ด์šฉ
}
  • Function ์ƒ์„ฑ์ž ( constructor )
var ํ•จ์ˆ˜์ด๋ฆ„ = new Function("๋งค๊ฐœ๋ณ€์ˆ˜1", "๋งค๊ฐœ๋ณ€์ˆ˜2" , ... , "ํ•จ์ˆ˜ ๋‚ด์šฉ");
  • ํ•จ์ˆ˜ ํ˜ธ์ถœ
ํ•จ์ˆ˜์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜1, ๋งค๊ฐœ๋ณ€์ˆ˜2,...);

ํ•จ์ˆ˜ - ํ˜ธ์ด์ŠคํŒ…

  • ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ
    ํ•จ์ˆ˜ ์„ ์–ธ์˜ ์œ„์น˜์™€ ์ƒ๊ด€์—†์ด ์ฝ”๋“  ๋‚ด ์–ด๋Š ๊ณณ์—์„œ๋“ ์ง€ ํ˜ธ์ถœ ๊ฐ€๋Šฅ
    ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ์œผ๋กœ ์ •์˜๋œ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ์„ ์–ธ, ์ดˆ๊ธฐํ™”, ํ• ๋‹น์ด ํ•œ ๋ฒˆ์— ์ด๋ฃจ์–ด์ง„๋‹ค.

ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ฉด ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ ( ํ˜ธ์ด์ŠคํŒ…์„ ์‹ ๊ฒฝ ์•ˆ์จ๋„ ๋˜์–ด์„œ ) ๋Œ€๊ทœ๋ชจ application์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ์ฝ”๋“œ๋ฅผ ๋ณ€์ˆ˜ ๊ฐ์ฒด์— ์ €์žฅํ•˜๋ฏ€๋กœ application์˜ ์‘๋‹ต ์†๋„๋ฅผ ์ €ํ•˜์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
-> ์ƒํ™ฉ์— ๋งž๊ฒŒ ์ž˜ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•˜์ž !

  • ํ•จ์ˆ˜ ํ‘œํ˜„์‹
    ํ•จ์ˆ˜ ํ˜ธ์ด์ŠคํŒ…์ด ์•„๋‹ˆ๋ผ ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…์ด ๋ฐœ์ƒํ•œ๋‹ค.
var result = plus(5, 7);
console.log(result);

var plus = function (num1, num2) {
  return num1 + num2;
};

// plus ํ•จ์ˆ˜๊ฐ€ ๋ฐ‘์—์„œ ์„ ์–ธ๋˜์–ด ํ˜ธ์ด์ŠคํŒ… ๋ฐœ์ƒ -> ์˜ค๋ฅ˜ ๋ฐœ์ƒ

ํ•จ์ˆ˜ - ๋งค๊ฐœ๋ณ€์ˆ˜

์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์„ ๋ณ€์ˆ˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋ผ ํ•œ๋‹ค.
ํƒ€์ž…์„ ๋ช…์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค.
ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ •์˜๋œ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ „๋‹ฌ์ธ์ž์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๋”๋ผ๋„ ํ˜ธ์ถœ ๊ฐ€๋Šฅ

ํ•จ์ˆ˜ - ์ฝœ๋ฐฑ ํ•จ์ˆ˜

์ค‘ ์š” ํ•˜ ๋‹ค !!! ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ž€ ํ•จ์ˆ˜๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹Œ ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹œ์Šคํ…œ์— ์˜ํ•ด ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜
์ผ๋ฐ˜์ ์œผ๋กœ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋˜๊ณ  ์ „๋‹ฌ๋ฐ›์€ ํ•จ์ˆ˜์˜ ๋‚ด๋ถ€์—์„œ ์–ด๋Š ํŠน์ •์‹œ์ ์— ์‹คํ–‰๋œ๋‹ค.
์ฃผ๋กœ ๋น„๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ ๋ชจ๋ธ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.
์ฒ˜๋ฆฌ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ „๋‹ฌํ•˜๊ณ  ์ฒ˜๋ฆฌ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ

  • Event Handler
<button id="btn">click!!</button>
<script type="text/javascript">
  var btn = document.getElementById("btn");
  btn.addEventListener("click", function () {
    // function()์ด ์ฝœ๋ฐฑ ํ•จ์ˆ˜์ด๋‹ค. ๋งŒ์•ฝ ์—ฌ๊ธฐ์— ์ง์ ‘ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๋ฉด ์›ํ•˜๋Š” ๊ฐ’์„ ์ถœ๋ ฅ ๋ชปํ•จ
    // ex ) btn.addEventListener('click', view(document.getElementById("test".).value));
    //  ์ผ๋ฐ˜ ํ•จ์ˆ˜
    //  function view(val){
    //  console.log(val);
    //}

    // ex) btn ์œ„์— ํ•จ์ˆ˜ ์„ ์–ธ์€ ๊ฐ€๋Šฅ
    // var callback = function(){
    //    view(document.getElementById("test".).value));
    //    }
    // btn.addEventListener('click', callback); ์€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

    console.log(" ์•ˆ๋…•ํ•˜์„ธ์š”");
  });
</script>
  • setTimeout()
setTimeout(function () {
  console.log("3์ดˆํ›„ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ");
}, 3000);

JAVASCRIPT ๊ธฐ๋ณธ ๋งˆ๋ฌด๋ฆฌ

JavaScript์˜ ๊ธฐ๋ณธ์„ ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค.
์ž๋ฐ”๋ž‘ ๋น„์Šทํ•˜๋ฉด์„œ๋„ ์ข€ ๋” ํŽธ๋ฆฌํ•œ ๋ถ€๋ถ„์ด ๋” ๋งŽ์€ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๋‹ค.( JAVA๋ž‘ ๊ด€๋ จ์žˆ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋‚˜์˜ ์ฃผ ์–ธ์–ด๊ฐ€ JAVA๊ธฐ ๋•Œ๋ฌธ )
HTML๊ณผ CSS์™€ ๊ฐ™์ด ์ž‘๋™ํ•˜๋ฉฐ ๋” ์™„์„ฑ๋„ ์žˆ๊ณ  ๋™์ ์ธ ์›น ํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ํฐ ์ผ์กฐ๋ฅผ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„ ๋” ํฅ๋ฏธ๊ฐ€ ๊ฐ”๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ •๋ฆฌํ•˜๋ฉด์„œ๋„ ํฌ๊ฒŒ ์–ด๋ ค์šด ๋ถ€๋ถ„์ด ์—†์–ด์„œ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
์ด์ œ JS์˜ ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด๋ฉด์„œ JS๋ฅผ ๋” ์ž˜ ๋‹ค๋ฃฐ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์•ผ๊ฒ ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ฝœ๋ฐฑํ•จ์ˆ˜์— ๋Œ€ํ•ด ์ž˜ ์•Œ๊ณ  ์žˆ์–ด์•ผ ๊ฒ ๋‹ค !!