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

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

by KASSID 2022. 2. 7.

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 ๋ฐ˜ํ™˜

๋Œ“๊ธ€