View

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

์ฑ…์ฝ๋Š” ๊ฐ์ž 2022. 9. 18. 23:26
๋ฐ˜์‘ํ˜•

๐Ÿ’ก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ž€? 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” HTML, CSS์™€ ํ•จ๊ป˜ ์›น์„ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜๋Š” ์œ ์ผํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณ„๋„์˜ ์ปดํŒŒ์ผ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์ด๋‹ค

ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜์˜ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์ด๋‹ค( Edition 6์—์„œ๋Š” Class๊ฐœ๋… ์ง€์›๋จ)

 

๐Ÿ’ก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์„ ์–ธ 

<script src="hello.js" type ="text/javascript"></script>

src์†์„ฑ์€ ์™ธ๋ถ€์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ HTML๋ฌธ์„œ์— ํฌํ•จํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ ์ƒ๋žต ๊ฐ€๋Šฅํ•จ

๋˜ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” HTMLํŒŒ์ผ ๋‚ด๋ถ€์˜  <head>์™€ <body>ํƒœ๊ทธ ์•ˆ์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค

์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML๋ฌธ์„œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•ด์„(parsing)ํ•˜๋ฏ€๋กœ ์Šคํฌ๋ฆฝํŠธ ์œ„์น˜์— ๋”ฐ๋ผ ๋กœ๋“œ์™€ ์‹คํ–‰ ์‹œ์ ์ด ๋‹ฌ๋ผ์ง„๋‹ค

  • <head> ์•ˆ ์œ„์น˜: ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฐ์ข… ์ž…์ถœ๋ ฅ ๋ฐœ์ƒ ์ด์ „์— ์ดˆ๊ธฐํ™”๋˜๋ฏ€๋กœ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋จผ์ € ์ ๊ฒ€ํ•จ
  • <body>์•ˆ ์œ„์น˜: ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML๋ถ€ํ„ฐ ํ•ด์„ํ•˜์—ฌ ํ™”๋ฉด์— ๊ทธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ๋น ๋ฅด๋‹ค๊ณ  ๋Š๋‚„ ์ˆ˜ ์žˆ์Œ

 

๐Ÿ’ก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜(variable)

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™์ ํƒ€์ž… ์–ธ์–ด์ด๊ธฐ์— ๋ณ€์ˆ˜์˜ ํƒ€์ž… ์ง€์ •์—†์ด ๊ฐ’์ด ํ• ๋‹น๋˜๋Š” ๊ณผ์ •์—์„œ ์ž๋™์œผ๋กœ ๋ณ€์ˆ˜์˜ ํƒ€์ž… ๊ฒฐ์ •
  • ์›์‹œํƒ€์ž…: ์ˆซ์ž, ๋ฌธ์ž์—ด, boolean, null, undefined(5๊ฐ€์ง€) ์ด์™ธ๋Š” ๋ชจ๋‘ ๊ฐ์ฒด ํƒ€์ž…

 

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ˆซ์ž๋ฅผ ์ •์ˆ˜์™€ ์‹ค์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ (๋ชจ๋“  ์ˆซ์ž๋ฅผ 8byte์˜ ์‹ค์ˆ˜ ํ˜•ํƒœ๋กœ ์ฒ˜๋ฆฌ )

 

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

Infinity: ๋ฌดํ•œ๋Œ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒ์ˆ˜, ์–ด๋– ํ•œ ์ˆ˜๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„๊ฑฐ๋‚˜Infinity๋ฅผ ์–ด๋– ํ•œ ์ˆ˜๋กœ ์‚ฌ์น™์—ฐ์‚ฐํ•œ ๊ฒฐ๊ณผ

NaN(Not a Number) :๊ณ„์‚ฐ์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ˆซ์ž๊ฐ€ ์•„๋‹˜์„ ๋‚˜ํƒ€๋ƒ„

 

๐Ÿ’ก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…(variable Hoisting)

  • varํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๋ณ€์ˆ˜๋Š” ์ค‘๋ณตํ•ด์„œ ์„ ์–ธ ๊ฐ€๋Šฅ
var n= 123;
console.log(n); // 123

var n= 456
console.log(n) ;// 456

 

๐Ÿ’ก letํ‚ค์›Œ๋“œ์™€ constํ‚ค์›Œ๋“œ( +  var: ์ „์—ญ ์Šค์ฝ”ํ”„)

์ถœ์ฒ˜: https://iancoding.tistory.com/131

let์€ ๋ฐ์ดํ„ฐ ๊ฐ’ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜์ด๋ฉฐ, const๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์˜ ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒ์ˆ˜์ด๋‹ค.

๋‘˜ ๋‹ค ๋ฐ์ดํ„ฐ ๊ฐ’์— ์ด๋ฆ„์„ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๊ณ  ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋ฐ˜๋ณตํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

// ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”๋Š” ๋ณ€์ˆ˜ let๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ƒ์ˆ˜ const๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค
let value; // (O) ๊ฐ€๋Šฅ
const value; // (X) ๋ถˆ๊ฐ€

// ๋ณ€์ˆ˜ name์— '์ด์•ˆ'์„ ๋Œ€์ž…
let name = '์ด์•ˆ';
name = '์ด์•ˆ92'; // ๋‹ค๋ฅธ ๊ฐ’ ๋Œ€์ž…์ด ๊ฐ€๋Šฅ

// ์ƒ์ˆ˜ name์— '์ด์•ˆ'์„ ๋Œ€์ž…
const name = '์ด์•ˆ';
name = '์ด์•ˆ92'; // ๊ฐ’ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ => ์ฝ”๋“œ ์—๋Ÿฌ ๋ฐœ์ƒ

์ˆซ์ž ํƒ€์ž… ๋ณ€์ˆ˜ ๊ฐ„์— ๊ณ„์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ฌธ์ž์—ด ํƒ€์ž… ๋ณ€์ˆ˜ ๊ฐ„ ๊ฒฐํ•ฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

// ์ฝค๋งˆ(,)๋กœ ๊ตฌ๋ถ„ํ•˜๋ฉด ํ•œ๊บผ๋ฒˆ์— ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜ ์„ ์–ธ ๊ฐ€๋Šฅ
let a = 1, b = 2;
const a = 1, b = 2;

// ์ˆซ์ž ๊ณ„์‚ฐ, ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ์€ ๋‘˜๋‹ค ๊ฐ€๋Šฅ
let number1 = 100;
let number2 = 200;
let sum = number1 + number2;
console.log(sum); // ๊ฒฐ๊ณผ : 300
// console.log๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์ฝ˜์†”์— ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค

let name = '์ด์•ˆ';
let birth = '92';
let nickname = name + birth;
console.log(nickname); // ๊ฒฐ๊ณผ : '์ด์•ˆ92'

// ๋ณ€์ˆ˜ let๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ƒ์ˆ˜ const๋„ ์œ„์™€ ๋™์ผํ•˜๋‹ค
const number1 = 100;
const number2 = 200;
const sum = number1 + number2;
console.log(sum); // ๊ฒฐ๊ณผ : 300

const name = '์ด์•ˆ';
const birth = '92';
const nickname = name + birth;
console.log(nickname); // ๊ฒฐ๊ณผ : '์ด์•ˆ92'

but, ์ƒ์ˆ˜๋กœ ์„ ์–ธ๋œ ๋ฐฐ์—ด๊ณผ ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๊ฐ’์€ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

const array = ['ํ”ผ์นด์ธ„', '๋ผ์ด์ธ„', 'ํŒŒ์ด๋ฆฌ'];
array[2] = '๊ผฌ๋ถ€๊ธฐ';
// ๊ฒฐ๊ณผ array = ['ํ”ผ์นด์ธ„', '๋ผ์ด์ธ„', '๊ผฌ๋ถ€๊ธฐ'];

const object = { nickname: '์ด์•ˆ', age: 20 };
object.age = 30;
// ์Šฌํ”„์ง€๋งŒ ๊ฐ์ฒด ๋‚ด๋ถ€์˜ age๊ฐ’์ด 30์œผ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค

๊ฐ’ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์—๋งŒ let์„ ์“ฐ๊ณ , ์ด์™ธ์—๋Š” const๋ฅผ ์ฃผ๋กœ ์ด์šฉํ•˜๋Š” ์ถ”์„ธ์ธ๋ฐ

const๋ฅผ ์ ๊ทน ์ด์šฉํ•จ์œผ๋กœ์จ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์™€ ๊ทธ๋ ‡์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ๋ถ„์ด ์‰ฌ์›Œ์ ธ ๊ฐ€๋…์„ฑ์ด ๋†’์•„์ง€๋Š” ๋ฉ”๋ฆฌํŠธ๋ฅผ ์–ป๊ฒŒ๋œ๋‹ค.

๋ฐ˜์‘ํ˜•
Share Link
reply
๋ฐ˜์‘ํ˜•
ยซ   2024/11   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30