๐คฏ Javascript์ Typescript์ ๋ํด ์์๋๋ฉด ์ข์ 3๊ฐ์ง ์ด์ํ ์ , 1๋ถ
7024 ๋จ์ด javascriptfunfactsprogrammingtypescript
์ ญ ๐ค
ํ์ฌ ์ ๋ ์น๊ตฌ๋ค๊ณผ ์ด ๋๋ผ์ด ๋๊ตฌ์ ๋ํด ์ด์ผ๊ธฐ๋ฅผ ๋๋๋ค๊ฐ Javascript์ ๊ทธ์ ๋น๋ฐ ๐ฅท์ ์กฐ๊ธ ๋ ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ ๋ง์ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์์ง ๋ชปํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
๋ค์์ ๊ทธ ์ค ์ผ๋ถ์ ๋๋ค.
๋ฐฐ์ด์ ๊ฐ์ฒด์ ๋๋ค ๐ฅฒ:
# if you are trying to check if an array has the type of 'Array'
# my friend, you are doing wrong
console.log(typeof "something") # "string"
console.log(typeof {}) # "object"
console.log(typeof []) # "object"
์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํฉ๋๊น? ๋ด๊ฐ ๋ฏธ์ณค์ด? ์๋์, ๋น์ ์ ์๋ ์๋ ์๊ณ ์๋ ์๋ ์์ง๋ง ์ด๊ฒ์ด ์์ ์ด ์๋๋๋ค. ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ ์ด์ ๋ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๊ฐ ๋ชฉ๋ก ๋๋ ๋ฐฐ์ด์ด์ง๋ง ๋ชจ๋ ๋ ผ๋ฆฌ์ ๋ฉ์๋๋ฅผ ๋ณด์ ํ๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ฐ์ฒด
x
์์ ์์ฑobj
์ ์ก์ธ์คํ๋ ค๊ณ ํ๋ค๊ณ ์์ํด ๋ณด์ญ์์ค.const obj = { x: 'Hello' }
console.log(obj.x) # 'Hello'
์ด์ ๋ฐฐ์ด์์
length
๋ผ๋ ์์ฑ์ ์ก์ธ์คํ๋ ค๊ณ ํ๋ค๊ณ ์์ํด ๋ณด์ญ์์ค.# This is what is happening behind the scenes
const arr = [2]
console.log(arr.length) # 1
๊ฐ์ฒด ์ก์ธ์ค์ ์์ฑ ๊ธธ์ด์ ์ฐจ์ด์ ์ ๋ณด์ จ์ต๋๊น? ์ ํํ ์ด๊ฒ์ด ๋ฐฐ์ด์ ์ ์ํ๊ธฐ ์ํด
object
๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ ์ด์ ์
๋๋ค.any์ unknown ๐ฅธ์ ์ฐจ์ด์ :
any
์ ์ ์ฌํ๊ฒ any
๊ฐ์ unknown
์ ํ ๋นํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ any
์ ๋ฌ๋ฆฌ unknown
์ ํ์ ๊ฐ์ ๋ํ ์์ฑ์ ์ก์ธ์คํ๊ฑฐ๋ ์์ฑ์ ํธ์ถ/์์ฑํ ์ ์์ต๋๋ค. ๋ํ unknown
๋๋ any
๋ง ์ฌ์ฉํ์ฌ unknown
์ ํ์ ๊ฐ์ ํ ๋นํ ์ ์์ต๋๋ค.type MyCoolProps {
newOnboardingFlow: any;
}
...
try{...}
catch(error: unknown){...}
์๊ฐ์ด 0์ธ ๊ฒฝ์ฐ์๋ setTimeout์ด ์ง์ฐ๋ฉ๋๋ค.
๊ธ๋ก๋ฒ
setTimeout()
๋ฉ์๋๋ ํ์ด๋จธ๊ฐ ๋ง๋ฃ๋๋ฉด ํจ์ ๋๋ ์ง์ ๋ ์ฝ๋ ์กฐ๊ฐ์ ์คํํ๋ ํ์ด๋จธ๋ฅผ ์ค์ ํฉ๋๋ค. x
๋ฐ๋ฆฌ์ด ํ์ ๋ ๋๋งํ๋ ์ ๋ง ์ข์ ๋ฐฉ๋ฒ์
๋๋ค.setTimeout(() => console.log('Hello dev.to', 1000))
# After 1 second
# Hello dev.to
๊ทธ๋ฌ๋ ๋ฐ๋ฆฌ์ด๋ฅผ
zero
๋ก ์ค์ ํ๋ ๊ฒฝ์ฐ ์ด ์ ์๋ ์ฌ์ค์ด ์๋๋๋ค.setTimeout(() => console.log('Hello dev.to', 0))
console.log("Bye")
# outputs:
# Bye
# Hello dev.to
์ด ์ด์ํ ๋ง๋ฒ์ด ์ ์ผ์ด๋๋์ง ๋ฌผ์ด๋ณผ ์ ์์ต๋๋ค! ๊ทธ ์ด์ ๋ ํ์ด๋จธ๋ฅผ 0์ผ๋ก ์ค์ ํ๋ฉด ๋ค์ ๋ฐ๋ณต์์
setTimeout
๋ฅผ ์คํํ๋ฏ๋ก ๋ฌธ์ ๊ทธ๋๋ก ๋ ๋ฒ์งธ console.log
๋ฅผ ์คํํ ํ ์คํ์ ํ์ธํ๋ค๋ ์๋ฏธ์
๋๋ค.๋ค์ ๋ฐ๋ณต์ ๋ค์์ ์๋ฏธํฉ๋๋ค.
If this parameter is omitted, a value of 0 is used, meaning execute "immediately", or more accurately, the next event cycle.
๐ฐ ์ค๋์ 2์ผํธ์ ๋๋ค.
๐๋ด ์๊ฐ์ ๊ณต์ ํ๋ ๊ณณ์์ ํ๋ก์ 500๋ช ์ ๋ฌ์ฑํ๋๋ก ๋์์ฃผ์ธ์.
๐ ๋๊ธ ์น์ ์์ ์ด ์ฃผ์ ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ๋์ง ์๋ ค์ฃผ์ธ์.
๐ ๊ทธ๊ฒ์ ๋ํด ๋ ์๊ณ ์ถ๋ค๋ฉด ์ ๋ฅผ ํ๋ก์ฐํ์ธ์.
โ ์ medium๊ณผ my personal website ์ฃผ์ ์ ๋ชจ๋ ์คํํธ์ , ๊ธฐ์ ๋ฐ ๊ธฐ์ ๊ฐ ์ ์ ์ ์ฐ๋ ๊ณณ์ ๋๋ค.
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐คฏ Javascript์ Typescript์ ๋ํด ์์๋๋ฉด ์ข์ 3๊ฐ์ง ์ด์ํ ์ , 1๋ถ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/msmello_/3-weird-things-that-is-cool-to-know-about-javascript-and-typescript-part-i-5ag4ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค