728x90

๐Ÿ‘‰JavaScript์˜ ์ž๋ฃŒํ˜•๊ณผ JavaScript๋งŒ์˜ ํŠน์„ฑ

๐ŸŽฏ๋А์Šจํ•œ ํƒ€์ž…(loosley typed)์˜ ๋™์ (dynamic) ์–ธ์–ด

JavaScript๋Š” ๋А์Šจํ•œ ํƒ€์ž…(loosely typed)์˜ ๋™์ (dynamic) ์–ธ์–ด์ž…๋‹ˆ๋‹ค.
JavaScript์˜ ๋ณ€์ˆ˜๋Š” ์–ด๋–ค ํŠน์ • ํƒ€์ž…๊ณผ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉฐ,
๋ชจ๋“  ํƒ€์ž…์˜ ๊ฐ’์œผ๋กœ ํ• ๋‹น ๋ฐ ์žฌํ• ๋‹น ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๐ŸŽฏJavascript ํ˜•๋ณ€ํ™˜

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํƒ€์ž…์ด ๋งค์šฐ ์œ ์—ฐํ•œ ์–ธ์–ด์ด๋‹ค.
๋•Œ๋ฌธ์— ๋•Œ๋กœ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ํ•„์š”์— ๋”ฐ๋ผ ‘์•”์‹œ์ ๋ณ€ํ™˜’ ์„ ํ˜น์€ ๊ฐœ๋ฐœ์ž์˜ ์˜๋„์— ๋”ฐ๋ผ ‘๋ช…์‹œ์ ๋ณ€ํ™˜’ ์„ ์‹คํ–‰ํ•œ๋‹ค.

์•”์‹œ์ ๋ณ€ํ™˜
์•”์‹œ์  ๋ณ€ํ™˜์ด๋ž€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ํ•„์š”์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋ฐ์ดํ„ฐํƒ€์ž…์„ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

๋ช…์‹œ์ ๋ณ€ํ™˜
๋ช…์‹œ์ ๋ณ€ํ™˜์ด๋ž€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„๋ฅผ ๊ฐ€์ง€๊ณ  ๋ฐ์ดํ„ฐํƒ€์ž…์„ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

๐ŸŽฏ'=='์™€ '==='์˜ ์ฐจ์ด์ 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์—„๊ฒฉํ•œ ๋น„๊ต์™€ ์œ ํ˜•๋ณ€ํ™˜ ๋น„๊ต๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•˜๋ฏ€๋กœ, ์–ด๋–ค ์—ฐ์‚ฐ์ž๊ฐ€ ์–ด๋–ค ๋น„๊ต์กฐ๊ฑด์— ์‚ฌ์šฉ๋˜๋Š”์ง€๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.
์œ„์— ๋งํ–ˆ๋“ฏ์ด, ===๋Š” ๋ณ€์ˆ˜ ์œ ํ˜•์„ ๊ณ ๋ คํ•˜๋Š” ๋ฐ˜๋ฉด, ==๋Š” ๋ณ€์ˆ˜ ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์œ ํ˜•์„ ์ˆ˜์ •ํ•œ๋‹ค.

๐ŸŽฏ๋А์Šจํ•œ ํƒ€์ž…(loosely typed)์˜ ๋™์ (dynamic) ์–ธ์–ด์˜ ๋ฌธ์ œ์ ์€ ๋ฌด์—‡์ด๊ณ  ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•

์‹คํ–‰ ๋„์ค‘์— ๋ณ€์ˆ˜์— ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ํƒ€์ž…์ด ๋“ค์–ด์™€ ํƒ€์ž…์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ
๋™์ ํƒ€์ž… ์–ธ์–ด๋Š” ๋Ÿฐํƒ€์ž„ ์‹œ ํ™•์ธํ•  ์ˆ˜ ๋ฐ–์— ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์ฝ”๋“œ๊ฐ€ ๊ธธ๊ณ  ๋ณต์žกํ•ด์งˆ ๊ฒฝ์šฐ ํƒ€์ž… ์—๋Ÿฌ๋ฅผ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ ์ง‘๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ถˆํŽธํ•จ์„ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด TypeScipt๋‚˜ Flow ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐ŸŽฏundefined์™€ null์˜ ๋ฏธ์„ธํ•œ ์ฐจ์ด๋“ค์„ ๋น„๊ตํ•ด๋ณด์„ธ์š”.

undefined์€ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š์€ ์ƒํƒœ, null์€ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ๋นˆ ๊ฐ’์„ ํ• ๋‹นํ•œ ์ƒํƒœ(๋นˆ ๊ฐ์ฒด)์ด๋‹ค. ์ฆ‰, undefined๋Š” ์ž๋ฃŒํ˜•์ด ์—†๋Š” ์ƒํƒœ์ด๋‹ค.

๐Ÿ‘‰JavaScript ๊ฐ์ฒด์™€ ๋ถˆ๋ณ€์„ฑ์ด๋ž€?

๐ŸŽฏ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ์™€ ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ

๐Ÿ“Œ๊ธฐ๋ณธํ˜• ํƒ€์ž…(Primitive type)

์ข…๋ฅ˜: ๋…ผ๋ฆฌํ˜•(boolean), ์ •์ˆ˜ํ˜•(int), ์‹ค์ˆ˜ํ˜•(double), ๋ฌธ์žํ˜•(char)

๐Ÿ“Œ์ฐธ์กฐํ˜• ํƒ€์ž…(Reference type)

์ข…๋ฅ˜: ๋ฐฐ์—ด(Array), ํด๋ž˜์Šค(Class), ์ธํ„ฐํŽ˜์ด์Šค(Interface)

๐ŸŽฏ๋ถˆ๋ณ€ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

'๋ถˆ๋ณ€ ๊ฐ์ฒด'๋ž€ - '๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด' ์ฆ‰ ์ด๋ฏธ ํ• ๋‹น๋œ ๊ฐ์ฒด๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

// Object freeze แ„€แ…ขแ†จแ„Žแ…ฆแ„…แ…ณแ†ฏ แ„‡แ…ฎแ†ฏ๋ณ€แ„’แ…กแ„€แ…ฆ แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต
let test = {
    name : 'kim'
}

Object.freeze(test);
test.name = 'Jung';
console.log(test)

๐ŸŽฏ์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ

๐Ÿ“Œ์–•์€ ๋ณต์‚ฌ(Shallow Copy)

๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ, ํ•ด๋‹น ๊ฐ์ฒด๋งŒ ๋ณต์‚ฌํ•˜์—ฌ ์ƒˆ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
๋ณต์‚ฌ๋œ ๊ฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” ์›๋ณธ ๊ฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.
๋”ฐ๋ผ์„œ, ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์›๋ณธ ๊ฐ์ฒด ๋ฐ ๋ณต์‚ฌ ๊ฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ๊ฐ’์€ ๊ฐ™์ด ๋ณ€๊ฒฝ๋œ๋‹ค.

๐Ÿ“Œ๊นŠ์€ ๋ณต์‚ฌ(Deep Copy)

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

๐Ÿ‘‰ํ˜ธ์ด์ŠคํŒ…๊ณผ TDZ๋Š” ๋ฌด์—‡์ผ๊นŒ?
๋ณ€์ˆ˜, ํ˜ธ์ด์ŠคํŒ…, TDZ(Temporal Dead Zone)
๐ŸŽฏ์Šค์ฝ”ํ”„, ํ˜ธ์ด์ŠคํŒ…, TDZ
๐Ÿ“Œ์Šค์ฝ”ํ”„: ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์œ ํšจ ๋ฒ”์œ„.
๐Ÿ“Œํ˜ธ์ด์ŠคํŒ…: ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์„ ์–ธ ์ „์— ๋ฏธ๋ฆฌ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
๐Ÿ“ŒTDZ: ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.(์ฃผ์„ ์ฐธ๊ณ !)๐Ÿ‘‡๐Ÿ‘‡
let age = 30;
function showAge() {
console.log(age) //์—ฌ๊ธฐ์„œ ์œ„์— age์— ์ž˜ ์ ‘๊ทผํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
}
showAge();
์œ„์— ์ฝ”๋“œ์—์„œ let age = 20;๋ฅผ ์ถ”๊ฐ€ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
let age = 30;
function showAge() {
console.log(age) //2) TDZ ์˜์—ญ์ด ๋˜์–ด์„œ ReferenceError ์—๋Ÿฌ๋ฅผ ๋ณผ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
let age = 20; //1) ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๋ฉด
}
showAge();
๐ŸŽฏํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ๊ณผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์—์„œ ํ˜ธ์ด์ŠคํŒ… ๋ฐฉ์‹์˜ ์ฐจ์ด
ํ•จ์ˆ˜ ์„ ์–ธ์‹ (function declartion) ํ•จ์ˆ˜๋ช…์ด ์ •์˜๋˜์–ด ์žˆ๊ณ , ๋ณ„๋„์˜ ํ• ๋‹น ๋ช…๋ น์ด ์—†๋Š” ๊ฒƒํ•จ์ˆ˜ ์ „์ฒด๋ฅผ ํ˜ธ์ด์ŠคํŒ… ํ•ฉ๋‹ˆ๋‹ค. ์ •์˜๋œ ๋ฒ”์œ„์˜ ๋งจ ์œ„๋กœ ํ˜ธ์ด์ŠคํŒ…๋˜์„œ ํ•จ์ˆ˜
function sum(a,b) {
return a + b;
}
ํ•จ์ˆ˜ ํ‘œํ˜„์‹ (function Expression)์ •์˜ํ•œ function์„ ๋ณ„๋„์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ๊ฒƒ๋ณ„๋„์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ๋ณ€์ˆ˜๋Š” ์„ ์–ธ๋ถ€์™€ ํ• ๋‹น๋ถ€๋ฅผ ๋‚˜๋ˆ„์–ด ํ˜ธ์ด์ŠคํŒ… ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
const sum = function(a,b) {
return a + b;
}
ํ•จ์ˆ˜ ์„ ์–ธ์‹์œผ๋กœ ์ž‘์„ฑํ•œ ํ•จ์ˆ˜๋Š”, ํ•จ์ˆ˜ ์ „์ฒด๊ฐ€ ํ˜ธ์ด์ŠคํŒ… ๋œ๋‹ค๊ณ  ํ•˜์˜€๋Š”๋ฐ, ์ „์—ญ์ ์œผ๋กœ ์„ ์–ธํ•˜๊ฒŒ ๋˜๋ฉด, ์ค‘๋ณต์ ์œผ๋กœ ๋™๋ช…์˜ ํ•จ์ˆ˜๋ฅผ ์“ฐ๊ฒŒ ๋˜์—ˆ์„๋•Œ, ์›์น˜ ์•Š๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ํ•จ์ˆ˜ ํ‘œํ˜„์‹์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๐ŸŽฏlet, const, var, function ์ด ์–ด๋–ค ์›๋ฆฌ

var : ๋ณ€์ˆ˜ ์žฌ์„ ์–ธ ๊ฐ€๋Šฅconst, let : ๋ณ€์ˆ˜ ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ
const : ๋ณ€์ˆ˜ ์žฌํ• ๋‹น ๋ถˆ๊ฐ€๋Šฅ (์ƒ์ˆ˜)let : ๋ณ€์ˆ˜ ์žฌํ• ๋‹น ๊ฐ€๋Šฅ
var : functional-scope ๋กœ ํ˜ธ์ด์ŠคํŒ…๋จconst, let : block-scope ๋กœ ํ˜ธ์ด์ŠคํŒ…๋จ

๐ŸŽฏ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์™€ ์ฝœ ์Šคํƒ
์ฝœ ์Šคํƒ
๋”๋ณด๊ธฐ

call์€ ํ˜ธ์ถœ์„ ๋œปํ•œ๋‹ค. stack์€ ์ถœ์ž…๊ตฌ๊ฐ€ ํ•˜๋‚˜๋ฟ์ธ ๊นŠ์€ ์šฐ๋ฌผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋‹ค.
๋”ฐ๋ผ์„œ callstack์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์šฐ๋ฌผ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋‹ค.
ํ•ญ์ƒ ๋งจ ์œ„์— ๋†“์ธ ํ•จ์ˆ˜๋ฅผ ์šฐ์„ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. ์ด๋Ÿฐ ์‹์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๊ฐ€์žฅ ์œ„์— ์Œ“์—ฌ์žˆ๋Š” context์™€ ๊ด€๋ จ ์žˆ๋Š” ์ฝ”๋“œ๋“ค์„ ์‹คํ–‰ํ•˜๋Š” ์‹์œผ๋กœ ์ „์ฒด ์ฝ”๋“œ์˜ ํ™˜๊ฒฝ๊ณผ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•œ๋‹ค.

์‹คํ–‰ ์ปจํ…์ŠคํŠธ
๋”๋ณด๊ธฐ

Execution Context ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•ต์‹ฌ ๊ฐœ๋…์œผ๋กœ, ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ™˜๊ฒฝ์ด๋‹ค. ๋” ์ž์„ธํžˆ ๋งํ•˜์ž๋ฉด, ์‹คํ–‰ํ•  ์ฝ”๋“œ์— ์ œ๊ณตํ•  ํ™˜๊ฒฝ ์ •๋ณด๋“ค์„ ๋ชจ์•„๋†“์€ ๊ฐ์ฒด์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋™์  ์–ธ์–ด๋กœ์„œ์˜ ์„ฑ๊ฒฉ์„ ๊ฐ€์žฅ ์ž˜ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋….
๋ชจ๋“  ์ฝ”๋“œ๋Š” ํŠน์ •ํ•œ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์•ˆ์—์„œ ์‹คํ–‰๋œ๋‹ค. javascript๋Š” ์–ด๋–ค execution context๊ฐ€ ํ™œ์„ฑํ™”๋˜๋Š” ์‹œ์ ์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋“ค์„ ์œ„๋กœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ณ (hoisting), ์™ธ๋ถ€ ํ™˜๊ฒฝ ์ •๋ณด๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , this๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๋“ฑ์˜ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ, ์ด๋กœ ์ธํ•ด ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ๋ฐœ์ƒํ•  ์ˆ˜ ์—†๋Š” ํŠน์ดํ•œ ํ˜„์ƒ๋“ค์ด ๋ฐœ์ƒํ•œ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฃผ์š”ํ•œ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.Global Execution Context, Fuction Execution Context
๐ŸŽฏ์Šค์ฝ”ํ”„ ์ฒด์ธ, ๋ณ€์ˆ˜ ์€๋‹‰ํ™”
์Šค์ฝ”ํ”„ ์ฒด์ธ
์Šค์ฝ”ํ”„์— ์‹๋ณ„์ž๊ฐ€ ์—†์œผ๋ฉด ์ƒ์œ„ ์Šค์ฝ”ํ”„์—์„œ ๋‹ค์‹œ ์ฐพ์•„ ๋‚˜๊ฐ„๋‹ค. ์ด ํ˜„์ƒ์„ ์Šค์ฝ”ํ”„ ์ฒด์ธ ์ด๋ผ๊ณ  ํ•˜๋ฉฐ ์Šค์ฝ”ํ”„๊ฐ€ ์ค‘์ฒฉ๋˜์–ด์žˆ๋Š” ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ๋ฐœ์ƒํ•œ๋‹ค.
๋ณ€์ˆ˜ ์€๋‹‰ํ™”
์™ธ๋ถ€ ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ '์†์„ฑ ๊ฐ’(๋ฐ์ดํ„ฐ, ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๊ฐ’)'์„ ๊ฐ์ถ”๋Š” ํŠน์„ฑ

๐Ÿ‘‰์‹ค์Šต ๊ณผ์ œ
์ฝ˜์†”์— ์ฐํž b ๊ฐ’์„ ์˜ˆ์ƒํ•ด๋ณด๊ณ , ์–ด๋””์—์„œ ์„ ์–ธ๋œ “b”๊ฐ€ ๋ช‡๋ฒˆ์งธ ๋ผ์ธ์—์„œ ํ˜ธ์ถœํ•œ console.log์— ์ฐํ˜”๋Š”์ง€, ์™œ ๊ทธ๋Ÿฐ์ง€ ์„ค๋ช…ํ•ด๋ณด์„ธ์š”. ์ฃผ์„์„ ํ’€์–ด๋ณด๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค๋ฉด ์™œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ์ง€ ์„ค๋ช…ํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•ด๋ณด์„ธ์š”.
let b = 1;
function hi () {
const a = 1;
let b = 100;
b++;
console.log(a,b); //const,let๋Š” ๋ธ”๋Ÿญ ์Šค์ฝ”ํ”„์—์„œ ์œ ํšจํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ณ€์ˆ˜๋“ค์— ์ ‘๊ทผํ•ด์„œ ์ถœ๋ ฅ๋จ
}

console.log(a); // ์—ฌ๊ธฐ์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ์ด์œ ๋Š” ์ „์—ญ์ ์œผ๋กœ a๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„์„œ ์ž…๋‹ˆ๋‹ค.(์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ „์—ญ์ ์œผ๋กœ a ์ดˆ๊ธฐ๊ฐ’ ๋ณ€์ˆ˜๋ฅผ ํ• ๋‹นํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.)
console.log(b); //์ „์—ญ b๋ณ€์ˆ˜์— ์ ‘๊ทผํ•ด์„œ ์ถœ๋ ฅ
hi();
console.log(b); //์ „์—ญ b๋ณ€์ˆ˜์— ์ ‘๊ทผํ•ด์„œ ์ถœ๋ ฅ

window.ReactionButtonType = 'reaction';
window.ReactionApiUrl = '//triplexlab.tistory.com/reaction';
window.ReactionReqBody = {
    entryId: 197    }

์ข‹์•„์š”6

    ๊ณต์œ ํ•˜๊ธฐ

ํŽ˜์ด์Šค๋ถ์œผ๋กœ ๊ณต์œ ์นด์นด์˜คํ†ก์œผ๋กœ ๊ณต์œ ์นด์นด์˜ค์Šคํ† ๋ฆฌ๋กœ ๊ณต์œ ํŠธ์œ„ํ„ฐ๋กœ ๊ณต์œ URL ๋ณต์‚ฌ


๊ฒŒ์‹œ๊ธ€ ๊ด€๋ฆฌ

์ถœ์ฒ˜: https://triplexlab.tistory.com/197 [ํŠธ๋ฆฌํ”Œ์—‘์Šค๋žฉ | TriplexLab:ํ‹ฐ์Šคํ† ๋ฆฌ]

728x90

+ Recent posts