๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒŒ | WEB DEV/Vanilla JS

JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (1)_๋ณ€์ˆ˜ ~ ๋ฐ์ดํ„ฐํƒ€์ž…

by KASSID 2022. 2. 7.

๋ชฉ์ฐจ

    728x90

    1. ๋ณ€์ˆ˜

    let ๋ณ€์ˆ˜๋ช…;
    let ๋ณ€์ˆ˜๋ช… = ๊ฐ’;

    ๋ณ€์ˆ˜ ์„ ์–ธ ํ‚ค์›Œ๋“œ let

    let a = 10;
    console.log(a);
    a = 5;
    console.log(a);
    
    >>>
    10
    5

    console.log()๋ฅผ ํ†ตํ•ด์„œ ๊ฐ’ ์ถœ๋ ฅ

     

    ์ƒ์ˆ˜

    const ์ƒ์ˆ˜๋ช… = ๊ฐ’;

    const๋ฅผ ์ด์šฉํ•ด ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ดˆ๊ธฐํ™”๋„ ๋ฐ˜๋“œ์‹œ ํ•จ๊ป˜ ์ง„ํ–‰๋˜์–ด์•ผํ•œ๋‹ค.

    ๋‹น์—ฐํžˆ ์ƒˆ๋กœ์šด ๊ฐ’์„ ํ• ๋‹น์‹œํ‚ค๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€ํ•˜๋‹ค.

     

    ์ƒ์ˆ˜๋ช…์€ ๋Œ€๋ฌธ์ž ๋ฐ ์–ธ๋”๋ฐ”๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

    MY_NUMBER
    MAX_COUNT

     

    โ€ป ์ด๋•Œ, const๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ๊ฒฝ์šฐ ์š”์†Œ ์ž์ฒด๋ฅผ ์žฌํ• ๋‹นํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ,

       ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•˜๋‹ค.


    ์ฃผ์„

    //
    /**/

    ์ฃผ์„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค!

    //

    /*  */


    2. ์ž๋ฃŒํ˜• (6์ข…)

    1) number

    ์ •์ˆ˜&๋ถ€๋™์†Œ์ˆ˜์ ์„ number๋ผ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ์ฒ˜๋ฆฌ

    let a = 1;
    console.log(typeof a);
    a = 1.2;
    console.log(typeof a);
    
    >>>
    number
    number

    ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์ธ

    typeof ๋ฅผ ํ†ตํ•ด์„œ ์ถœ๋ ฅ์„ ํ•ด๋ณด์•˜๋‹ค.

     

    ์ •์ˆ˜์™€ ๋ถ€๋™์†Œ์ˆ˜ ๋ชจ๋‘ number๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

    (์ •์ˆ˜๋„ ์‹ค์ˆ˜๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ!)

     

    โ€ป NaN, Infinity ๋„ number์˜ ๋ฒ”์ฃผ์— ์†ํ•œ๋‹ค.


    2) string

    let a = "Hello World!"
    console.log(typeof a)
    
    >>>
    string

    "", '', ``(๋ฐฑํ‹ฑ)์— ๋‘˜๋Ÿฌ์‹ธ์ธ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ

    โ€ป ๋”ฐ์˜ดํ‘œ์— ๋‘˜๋Ÿฌ์‹ธ์ธ ํ…์ŠคํŠธ๋Š” \ ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ธด ๋ฌธ์ž์—ด์„ ์—ฌ๋Ÿฌ ์ค„์— ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.(์ค„๋ฐ”๊ฟˆ์€ ์•„๋‹˜)

    โ€ป ๋”ฐ์˜ดํ‘œ๋Š” ๋‚ด๋ถ€์˜ ํƒญ๊ณผ ์ค„๋ฐ”๊ฟˆ์„ ์ƒ๋žตํ•˜์ง€๋งŒ, ๋ฐฑํ‹ฑ์€ ๋ชจ๋‘ ๋ฐ˜์˜ํ•œ๋‹ค.

     

     

    ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด

    let name = 'KASSID';
    let age = 25;
    let married = false;
    
    console.log(`์ œ ์ด๋ฆ„์€ ${name}์ด๊ตฌ์š”, ${age}์„ธ ์ž…๋‹ˆ๋‹ค.
    ๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ ${married ? '๊ธฐํ˜ผ' : '๋ฏธํ˜ผ'}์ž…๋‹ˆ๋‹ค.`);

    ${}์•ˆ์— ์ƒ์ˆ˜๋‚˜ ๋ณ€์ˆ˜, ํ‘œํ˜„์‹ ๋“ฑ์„ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.


    3) boolean

    let a = 1 < 2;
    console.log(typeof a, a);
    a = 1 > 2;
    console.log(typeof a, a);
    
    >>>
    boolean true
    boolean false

    true, false๋Š” ์†Œ๋ฌธ์ž๋กœ!

     

    let a = Boolean(2>1);
    console.log(a)
    
    a = Boolean('') // ๋ฌธ์ž์—ด์ด ๋น„์–ด์žˆ์œผ๋ฉด false 
    b = Boolean('Hi') // ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด true
    console.log(a, b)
    
    a = Boolean(0) // 0์ด๋ฉด false
    b = Boolean(1) // ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด true
    console.log(a, b)
    
    >>>
    true
    false true
    false true

    Boolean() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ true, false๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.


    4) undefined

    '๊ฐ’์ด ํ• ๋‹น๋˜์ง€ ์•Š์Œ'์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

    ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์˜ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค.

    let a;
    console.log(typeof a, a)
    
    >>>
    undefined undefined

    ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ๊ฐ’ ๋ชจ๋‘ undefined ๋กœ ๋ฐ˜ํ™˜์ด ๋œ๋‹ค.

     


    5) null

    '๊ฐ’์ด ์—†์Œ'์ด๋‹ค.

     

    let a = null;
    console.log(typeof a, a);
    
    >>>
    object null

    ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ object, ๊ฐ’์€ null๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

     

    โ€ป null์˜ ํƒ€์ž…์„ object๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ด์œ 

    - JS์˜ ์œ ๋ช…ํ•œ ๋ฒ„๊ทธ์ด๋‹ค. ์›๋ž˜๋Š” null์„ ๋ฐ˜ํ™˜ํ•ด์•ผํ•˜์ง€๋งŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ดˆ์ฐฝ๊ธฐ ์‹ค์ˆ˜๋กœ ์ธํ•ด object๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ ํ•œ๋‹ค.

      ํ•˜์ง€๋งŒ ์ด๋ฅผ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด์„œ๋Š” typeof null ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ๋“ค์— ์˜ํ–ฅ์ด ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค.

    - ๊ฐ’์ด null์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” "=== null์ด true" ์ž„์„ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค!

     

     

    โ˜… undefined์™€ null์˜ ์ฐจ์ด

    null

    ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š์Œ ์˜๋„์ ์œผ๋กœ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ

     

    undefined

    ๊ณต๊ฐ„์€ ์žˆ์ง€๋งŒ ๊ฐ’์ด ํ• ๋‹น๋˜์ง€ ์•Š์Œ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.


     

    6) Symbol

    ES6๋ถ€ํ„ฐ ์ถ”๊ฐ€๋œ ๋ฌธ๋ฒ•์ด๋‹ค.

     

    ์‹ฌ๋ณผ์ด๋ž€,

    ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์›์‹œ ํƒ€์ž…์˜ ๊ฐ’์ด๊ณ 

    ๋‹ค๋ฅธ ๊ฐ’๊ณผ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๊ณ ์œ ํ•œ ๊ฐ’์ด๋‹ค.

    (uniqueํ•œ ๊ฐ’)

     

    Symbol(description)

     

    let a = Symbol(1);
    console.log(a, typeof a);
    
    >>>
    Symbol(1) symbol

    Symbol()ํ•จ์ˆ˜์˜ ์•ˆ์—๋Š” '์ธ์ž'๋กœ์„œ ๊ฐ’์„ ๋„ฃ๋Š” ๊ฒƒ์ด ์•„๋‹Œ

    ์ด๋ฒˆ์— ์ƒ์„ฑ๋  ์‹ฌ๋ณผ์— ๋Œ€ํ•œ ์„ค๋ช…(description)์„ ๋„ฃ๋Š” ๊ฒƒ์ด๋‹ค.

     

    ๋”ฐ๋ผ์„œ ๊ฐ™์€ description์„ ๋„ฃ์–ด๋„ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.

    let a = Symbol(1);
    let b = Symbol(1);
    console.log(a == b);
    console.log(a === b);
    
    >>>
    false
    false

    ๊ฐ’, ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ชจ๋‘ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

    (๋ง๊ทธ๋Œ€๋กœ uniqueํ•œ ๊ฐ’์„ ์ƒ์„ฑํ•ด์คŒ!)

     

    symbol ์“ฐ์ž„์ƒˆ

    ์‹ฌ๋ณผ๊ฐ’์€ ์ถฉ๋Œ ์œ„ํ—˜์ด ์—†๋Š” uniqueํ•œ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋งŒ๋“ค ๋•Œ

    ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

     


    3. ํ˜•๋ณ€ํ™˜

    1) ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ณ€ํ™˜

    ์•„๋ž˜๋Š” ํ˜•๋ณ€ํ™˜์„ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋“ค์ด๋‹ค.

     

    • Number() : number ์ž๋ฃŒํ˜•์œผ๋กœ
    • String() : ๋ฌธ์ž์—ด ์ž๋ฃŒํ˜•์œผ๋กœ
    • Boolean() : ๋ถˆ ์ž๋ฃŒํ˜•์œผ๋กœ ex) 0=false

    • parseInt() : numberํƒ€์ž… '์ •์ˆ˜'๋กœ
      parseInt(์ž…๋ ฅ, ์ง„๋ฒ•)
    • parseFloat() : numberํƒ€์ž… '์†Œ์ˆ˜'๋กœ

     

     โ€ป Number() ์™€ parseInt()์˜ ์ฐจ์ด์  

     

    - Number()๋Š” "๋ณ€ํ™˜๋Œ€์ƒ์ด ์ˆซ์ž๋งŒ"์žˆ์–ด์•ผํ•˜๊ณ  "์ •์ˆ˜์™€ ์†Œ์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ " ๋ณ€๊ฒฝํ•œ๋‹ค.

          ('123'-> 123 | '3.14' -> 3.14)

     

    - parseInt()๋Š” "๋ณ€ํ™˜ ๋Œ€์ƒ์— ์ •์ˆ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ๋ณ€ํ™˜"์„ ํ•ด์ค€๋‹ค.

          ('3์›”' -> 3) (Number()๋Š” NaN ๋ฐ˜ํ™˜)

     

     

     โ€ป prompt() 

    ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๋Š” ํ•จ์ˆ˜์ด๋‹ค.

    parseInt(prompt());

    ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ์˜ ์ž…๋ ฅ์„ ๊ฐ’์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

     


    2) ์ž๋™ ํ˜•๋ณ€ํ™˜

    ( 1 ) ์‚ฐ์ˆ ์—ฐ์‚ฐ์œผ๋กœ ์ธํ•œ ํ˜•๋ณ€ํ™˜

    • + : ๋ฌธ์ž์—ด๋กœ์˜ ๋ณ€ํ™˜์ด ์šฐ์„ ์ˆœ์œ„
    • ๊ทธ์™ธ : ์ˆซ์ž๋กœ์˜ ๋ณ€ํ™˜์ด ์šฐ์„ ์ˆœ์œ„

     

    ์˜ˆ์‹œ)

      1_๋ฌธ์ž์—ด + ๋‹ค๋ฅธ ํ˜• = ๋ฌธ์ž์—ด

       - ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ์ž๋ฃŒํ˜•์— String()์„ ์ ์šฉํ•œ ํ›„ ๊ทธ ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•œ๋‹ค.

    console.log(typeof('๋ฌธ์ž'+1));
    
    >>> string

     

       2_๋ฌธ์ž์—ด - ์ˆซ์ž

       - ๋ฌธ์ž์—ด์— Number()๋ฅผ ์ ์šฉํ•œ ํ›„ ๊ทธ ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•œ๋‹ค.

    console.log('3'-1.3);
    
    >>> 1.7
    
    console.log('3์›”'-1.3);
    >>> NaN

       

      3_์ˆซ์ž์™€ boolean

    console.log(1+true)
    console.log(4*true)
    console.log(4*false)
    console.log('4'**false)
    console.log(4-true)
    
    --------
    2
    3
    0
    1
    3

     

      4_NaN

    ๋ฌด์—‡์„ ํ•˜๋“  NaN ๋ฐ˜ํ™˜

    console.log(4%'two')
    
    --------
    NaN

    ( 2 ) ๋น„๊ต์—ฐ์‚ฐ์ž๋กœ ์ธํ•œ ํ˜•๋ณ€ํ™˜

    console.log(2<'3')
    console.log(1 ==true)
    console.log('2' <= true)
    console.log('two'>=1)
    
    --------
    true
    true
    false
    false // ๋น„๊ต ๋ถˆ๊ฐ€ ์‹œ์—๋„ false ๋ฐ˜ํ™˜

    ๋Œ“๊ธ€