๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JavaScript

[JavaScript] ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ

by soy๋ฏธ๋‹ˆ 2021. 9. 28.

 

 

 

 

๋ณ€์ˆ˜

// ๋ณ€์ˆ˜
var a = 10;
let b = 20;
const c = 30;
console.log(a, b, c);

 

  • ๋ณ€์ˆ˜ ์ข…๋ฅ˜์—๋Š” var / let / const ๊ฐ€ ์žˆ๋‹ค.

 

 

let, var, const

// let ๊ณผ var
var a = 10;
if(true){
    var a = 20;
    console.log(a);   // 20
}
console.log(a);       // 20

let b = 10;
if(true){
    let b = 20;
    console.log(b);   // 20
}
console.log(b);       //10

 

  •  let
    • ๋ณ€์ˆ˜ ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ, ์žฌํ• ๋‹น ๊ฐ€๋Šฅ
    • ์ง€์—ญ์„ฑ์„ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ์ง€์—ญ ์™ธ์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์—ฐ์‚ฐ์€ ์‹ค์ œ ๋ณ€์ˆ˜ ๊ฐ’์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค.
  • var
    • ๋ณ€์ˆ˜ ์žฌ์„ ์–ธ, ์žฌํ• ๋‹น ๊ฐ€๋Šฅ
    • ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๋Š” ์ง€์—ญ์— ์ƒ๊ด€์—†์ด ์–ด๋””์„œ๋“  ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ณ  ๊ทธ ๊ฐ’์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.
    • ES6์—์„œ var์„ ๋Œ€์ฒดํ•  ๋ณ€์ˆ˜์ธ let, const ๊ฐ€ ๋‚˜์™”๋‹ค.
  • const
    • ๋ณ€์ˆ˜ ์žฌ์„ ์–ธ, ์žฌํ• ๋‹น ๋ถˆ๊ฐ€๋Šฅ
    • ๋ณ€์ˆ˜๋ฅผ ์ตœ์ดˆ๋กœ ์„ ์–ธํ•˜๊ณ  ๊ฐ’์„ ํ• ๋‹นํ•  ๋•Œ ๋‹จ ํ•œ ๋ฒˆ ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐ ํ• ๋‹น ๊ฐ€๋Šฅ

 

 

ํƒ€์ž…

// ํƒ€์ž…
let c = true;
let d = [];
let e = {};
let f = function(){};
let g = undefined;

console.log(typeof(c));   // boolean
console.log(typeof(d));   // object
console.log(typeof(e));   // object
console.log(typeof(f));   // function
console.log(typeof(g));   // undefined
console.log(typeof(3.14)); // number

 

let tiger = {
    a:10,
    b:'ํ˜ธ๋ž‘์ด',
    c:true,
    d:[],
    e:{},
    f:function(){},
    g:undefined
};

console.log(tiger, typeof(tiger));     // tiger{a: 10, ...} object
console.log(tiger.a, typeof(tiger.a)); // number 10

 

 

ํƒ€์ž… ๋ณ€๊ฒฝ

let a = 10;
console.log(typeof(a));   // number

a = 'ํ˜ธ๋ž‘์ด';
console.log(typeof(a));   // string

 

 

Date() ํ•จ์ˆ˜

// Date() ํ•จ์ˆ˜
let n = new Date();
console.log(n.getFullYear(), '๋…„');
// 0์›”๋ถ€ํ„ฐ ์‹œ์ž‘
console.log(n.getMonth() + 1, '์›”');
console.log(n.getDate(), '์ผ');
// 0(์ผ) 1(์›”) 2(ํ™”)
console.log(n.getDay(), '์š”์ผ');
console.log(n.getHours(), '์‹œ');
console.log(n.getMinutes(), '๋ถ„');
console.log(n.getSeconds(), '์ดˆ');
console.log(typeof(n));
console.log(typeof(Date));
console.log(typeof n);
console.log(typeof Date);

 

  • ์‹ค์‹œ๊ฐ„ ๋‚ ์งœ, ์‹œ๊ฐ„ ์ •๋ณด ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๋ฒˆ์™ธ) ์ž๋ฐ”์™€ ๋™์ผํ•œ ๋ถ€๋ถ„

  • ์‚ฐ์ˆ ์—ฐ์‚ฐ, ๋น„๊ต์—ฐ์‚ฐ, ๋…ผ๋ฆฌ์—ฐ์‚ฐ
  • ์ฆ๊ฐ€์—ฐ์‚ฐ, ๊ฐ์†Œ์—ฐ์‚ฐ
  • += ๋ณตํ•ฉ๋Œ€์ž…์—ฐ์‚ฐ
  • ์ œ์–ด๋ฌธ, ์‚ผํ•ญ์—ฐ์‚ฐ
  • true, false

์ž๋ฐ”์™€ ๋™์ผํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„

  • ์Šน์ˆ˜ ๊ตฌํ•˜๊ธฐ
console.log(2 ** 4);
console.log(Math.pow(2, 4));

 

 

 

==   vs   ===

console.log(100 == 100);        // true
console.log(100 == '100');      // true
console.log(100 === '100');     // false

 

  • == : ๊ฐ’์ด ๊ฐ™์€์ง€์˜ ์—ฌ๋ถ€
  • === : ๊ฐ’๊ณผ ํƒ€์ž… ๋ชจ๋‘ ๊ฐ™์€์ง€์˜ ์—ฌ๋ถ€

 

 

 

if๋ฌธ

let a = 10;
if(a > 3){
    console.log('test');
}
a > 3 && console.log('test');

if(!false){
    console.log('test3');
}
false || console.log('test4');

 

 

 

ํ•จ์ˆ˜(Function)

// 1. ๊ธฐ๋ณธ๊ผด
f1();
function f1(){
    console.log('1');
}
f1();

// 2. ํ•จ์ˆ˜ ์ž์ฒด๋ฅผ ๋ณ€์ˆ˜์— ๋‹ด๋Š”๋‹ค
//f2();
let f2 = function(){
    console.log('2');
}
f2();

// 3. ๋žŒ๋‹ค์‹
let f3 = () => {
    console.log('3');
}
f3();

// 4. ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜(IIFE)
(function(){
    console.log('4')
})();

// 5.
(() => {
    console.log('5')
})();

 

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

 

ํ˜ธ์ด์ŠคํŒ…์ด๋ž€?

  • var, function declaration ๋“ค์˜ ์„ ์–ธ์ด ์ž๋™์ ์œผ๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ
console.log('1');
setTimeOut(() => console.log('2'), 2000);
console.log('3');

 

 

 

์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ ์˜ˆ์ œ

// 1.
function f4(num){
    console.log(num);
}
f4(100);

// 2.
(function f4(num){
    console.log(num);
})(200);

// 3.
(function(num){
    console.log(num);
    let start = new Date().getTime();
    while(new Date().getTime() < start + num);
})(2000);
console.log('test');

 

 

 

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

// ์ƒ์„ฑ์ž ํ•จ์ˆ˜ : ํด๋ž˜์Šค์™€ ๋™๊ฒฉ
function Fff555() {
    this.num1 = 10;
    this.num2 = 20;
    this.m1 = function () {
        console.log(this.num1);
    }
    this.m2 = () => {
        console.log(this.num2);
    }
}

// ๊ฐ์ฒด ์ƒ์„ฑ
let ins = new Fff555();
ins.m1();             // 10
ins.m2();             // 20
new Fff555().m1();    // 10

 

 

 

ํ•จ์ˆ˜(Function) ์˜ˆ์ œ

function t1() {
    console.log('1');
}

function t2(n, s) {
    console.log(n + s);
}

function t3() {
    console.log('3');
    return 888;
}

function t4(n) {
    console.log('4');
    return n * 2;
}

t1()                // 1
t2(2, 'str')        // 2str
console.log(t3());  // 3 // 888
console.log(t4());  // 4 // NaN

 

 

 

๊ฐ€๋ณ€ ์ธ์ˆ˜ ์ „๋‹ฌ

function t5() {
    console.log(typeof (arguments));    // object
    console.log(arguments.length);      // 3
    let sum = 0;
    for (const key of arguments) {
        sum += key;
    }
    console.log(sum);                   // 60
}
t5(10, 20, 30);

 

  • argument ๊ฐ์ฒด๋Š” t5 ํ•จ์ˆ˜์˜ ์ธ์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์—ญ๋ณ€์ˆ˜์ด๋‹ค.

 

 

 

๋Œ“๊ธ€