# ๐๏ธ Javascript Data Type
# ๐ง๐ผโ๐ Javascript Data Type์ ์์์ผ ํ๋ ์ด์
โํ๋ก ํธ์๋์์ ๋ถ๋ณ์ฑ์ด๋ผ๋ ๋ง์ด ๋์ฌ ๋ ํท๊ฐ๋ฆฐ๋ค๋ฉด? โ๋ณต์ฌํ ๊ฐ์ฒด์ ์์ฑ์ ๋ณ๊ฒฝํ๋๋ฐ ์๋ณธ ๊ฐ์ฒด๋ ๋ณ๊ฒฝ๋๊ฑธ ๋ณธ์ ์ด ์๋ค๋ฉด?
# ๐๐ปโโ๏ธ ์ด ๋ฌธ์๋ฅผ ๋ณด๊ณ ๋๋ฉด
- ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฐ์ดํฐ ํ์ ์ด ํ์ํ ์ด์ ๋ฅผ ์ ์ ์๋ค.
- ๊ธฐ๋ณธํ ํ์ ๊ณผ ์ฐธ์กฐํ ํ์ ์ด ์๋ก ๋ค๋ฅด๊ฒ ๋์ํ๋ ์ด์ ๋ฅผ ์ดํดํ ์ ์๋ค.
- ๊ฐ์ฒด์ ๋ถ๋ณ์ฑ์ ๋ณด์ฅํ๋ฉด์ ๋ณ๊ฒฝ์ ๊ฐํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์๋ค.
# ๐๏ธ Javascript Data Type
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ์ต๋๋ค. ํฌ๊ฒ 2๊ฐ์ง๋ก ๊ธฐ๋ณธํ(Primitive Type)๊ณผ ์ฐธ์กฐํ(Reference Type)์ด ์์ต๋๋ค.
์์ฒ๋ผ ๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ์ผ๋ก ๊ตฌ๋ถํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์? ๊ตฌ๋ถํ๋ค๋ ๊ฒ์ ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ์ ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
# Primitive Type(์์ ๊ฐ)
์์ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ์ ๋๋ค. ์ฆ, ํ๋ฒ ์์ฑ๋ ์์ ๊ฐ์ ์ฝ๊ธฐ ์ ์ฉ์ธ ๊ฐ์ผ๋ก์จ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๊ทธ๋์ ์์๊ฐ์ ๋ถ๋ณ์ฑ(immutability)๋ฅผ ๊ฐ์ง๋๋ค. ์ฌ์ค ์ด ๋ถ๋ถ์ด ์ดํดํ๊ธฐ ์ด๋ ค์ธ ์ ์๋๋ฐ์. ์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ด ๋ณ์์ ์๋ก์ด ๊ฐ์ ํ ๋นํ๋ฉด age๋ ์ ์์ ์ผ๋ก 20์ผ๋ก ๊ฐ์ด ์ ๋ณ๊ฒฝ์ด ๋ฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฌด์์ด ๋ถ๋ณ์ฑ(immutability)๋ฅผ ๊ฐ์ง๋ค๋ ๊ฒ์ผ๊น์?
var age = 30
age = 20
๋จผ์ ๋ณ์์ ๊ฐ์ ๊ตฌ๋ถํด์ ์๊ฐํด์ผํ๋๋ฐ์. ๋ณ์๋ ํ๋์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์์ฒด ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ณํ๊ธฐ ์ํด ๋ถ์ธ ์ด๋ฆ์ด๊ณ , ๊ฐ์ ๋ณ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๋๋ค. ๊ทธ๋์ ์์ ๊ฐ์ ๋ถ๋ณ์ฑ์ ๊ฐ์ง๋ค๋ผ๋ ๋ง์ ์์ ๊ฐ ์์ฒด๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค๋ ๊ฒ์ด์ง, ๋ณ์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค๋ ๊ฒ์ด ์๋๋๋ค. ๋ณ์๋ ์ธ์ ๋ ์ง ์ฌํ ๋น์ ํตํด ๋ณ์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๊ทธ๋์ ๋ณ(ํ ์ ์๋)์์ธ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ๋ณ์์ ์๋ก์ด ๊ฐ์ ํ ๋นํ๋ฉด, ์์๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ ํ๊ธฐ ๋๋ฌธ์ ๋ณ์๊ฐ ์ฐธ์กฐํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฃผ์๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด๋ฌํ ํน์ฑ์ ๋ถ๋ณ์ฑ(immutability) ๋ผ๊ณ ํฉ๋๋ค. ๋ถ๋ณ์ฑ์ ๊ฐ๋ ์์ ๊ฐ์ ํ ๋นํ ๋ณ์๋ ์ฌํ ๋น ์ด์ธ์๋ ๋ณ์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ง์ฝ ์ฌํ ๋น์ ํ์ง ์๊ณ ๋ณ์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค๋ฉด ๊ฐ์ ๋ณ๊ฒฝ, ์ฆ ์ํ ๋ณ๊ฒฝ์ ์ถ์ ํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.
์ํ ๋ณ๊ฒฝ์ ์ถ์ ํ๋ ๊ฒ์ ์ ํ์ํ ๊น์? ์๋์ ๊ฐ๋จํ ์์ ๋ฅผ ์ดํด๋ด ์๋ค.
var age = 30
var copy = age
console.log(age) // 30
console.log(copy) // 30
age = 20
console.log(age) // 20
console.log(copy) // ?
age ๋ณ์์ ๊ฐ 30์ ํ ๋นํ๊ณ , copy ๋ณ์์ copy ๋ณ์๋ฅผ ํ ๋นํ์ต๋๋ค.๊ทธ ํ age ๋ณ์์ ์๋ก์ด ์ซ์ ๊ฐ 20์ ์ฌํ ๋นํ๋ฉด copy ๋ณ์์ ๊ฐ์ ์ด๋ป๊ฒ ๋ ๊น์? ์ด ์ง๋ฌธ์ ํต์ฌ์ ๋ณ์์ ๋ณ์๋ฅผ ํ ๋นํ์ ๋ ๋ฌด์์ด ์ด๋ป๊ฒ ์ ๋ฌ๋๋๊ฐ? ์ ๋๋ค. ๋ณ์์ ์์ ๊ฐ์ ๊ฐ๋ ๋ณ์๋ฅผ ํ ๋นํ๋ฉด ํ ๋น๋ฐ๋ ๋ณ์(copy)์๋ ํ ๋น๋๋ ๋ณ์(age)์ ์์ ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ๋ฉ๋๋ค.
์ด๋ฅผ ๊ฐ์ ์ํ ์ ๋ฌ ์ด๋ผ๊ณ ํฉ๋๋ค. ์ด ๋ age ๋ณ์์ copy ๋ณ์๋ ์ซ์ ๊ฐ 30์ ๊ฐ๋๋ค๋ ์ ์์๋ ๋์ผํฉ๋๋ค. ํ์ง๋ง age ๋ณ์์ copy ๋ณ์์ ๊ฐ 30์ ์๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋ ๋ณ๊ฐ์ ๊ฐ์ ๋๋ค.
๊ฒฐ๊ตญ ๋ ๋ณ์์ ์์ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋ ๋ณ๊ฐ์ ๊ฐ์ด ๋์ด ์ด๋ ํ์ชฝ์์ ์ฌํ ๋น์ ํตํด ๊ฐ์ ๋ณ๊ฒฝํ๋๋ผ๋ ์๋ก ๊ฐ์ญํ ์ ์์ต๋๋ค. ์ด๋ฅผ ๋ถ๋ณ์ฑ(immutable)ํ ์ํ๋ฅผ ๊ฐ์ง๋ค๊ณ ํ๋ ๊ฒ์ ๋๋ค.
# Reference Type
๊ฐ์ฒด๋ ํ๋กํผํฐ์ ๊ฐ์๊ฐ ์ ํด์ ธ ์์ง ์์ผ๋ฉฐ, ๋์ ์ผ๋ก ์ถ๊ฐ๋๊ณ ์ญ์ ๋ ์ ์์ต๋๋ค. ๋ํ ํ๋กํผํฐ์ ๊ฐ์๋ ์ ์ฝ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ฒด๋ ์์ ๊ฐ๊ณผ ๊ฐ์ด ํ๋ณดํด์ผํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ์ฌ์ ์ ์ ํ ์๊ฐ ์๋๋ฐ์. ๊ฐ์ฒด๋ ๋ณตํฉ์ ์ธ ์๋ฃ๊ตฌ์กฐ์ด๋ฏ๋ก ๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด ์์ ๊ฐ๊ณผ ๋น๊ตํด์ ๋ณด๋ค ๋ณต์กํฉ๋๋ค. ๊ทธ๋์ ๊ตฌํ ๋ฐฉ์๋ ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ค๋ฅธ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์์ ๊ฐ์ ์๋์ ์ผ๋ก ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋นํ์ง๋ง ๊ฐ์ฒด๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ํฌ๊ธฐ๊ฐ ๋งค์ฐ ํด ์๋ ์์ต๋๋ค. ๊ทธ๋์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ํ๋กํผํฐ์ ์ ๊ทผํ๋ ๊ฒ๋ ์์ ๊ฐ๊ณผ ๋น๊ตํ ๋ ๋น์ฉ์ด ๋ง์ด ๋๋ ์ผ์ ๋๋ค. ๊ทธ๋์ ๊ฐ์ฒด๋ ์์ ๊ฐ๊ณผ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋์ํฉ๋๋ค
๊ฐ์ฒด(์ฐธ์กฐ) ํ์ ์ ์์๊ฐ๊ณผ ๋ค๋ฅด๊ฒ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ(mutable value) ์ ๋๋ค. ๋จผ์ ๋ณ์์ ๊ฐ์ฒด๋ฅผ ํ ๋นํ๋ฉด ์ด๋ค ์ผ์ด ๋ฐ์ํ ๊น์?
var user = {
name: 'Jun'
}
์์ ๊ฐ์ด ์ ์ธํ์ ๋ ์์ ๊ฐ์ ํ ๋นํ ๋ณ์๋ ์์ ๊ฐ ์์ฒด๋ฅผ ๊ฐ์ผ๋ก ๊ฐ์ต๋๋ค. ํ์ง๋ง ๊ฐ์ฒด๋ฅผ ํ ๋นํ ๋ณ์๋ ๋์ ์ผ๋ก ๋ณํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ ๋ฐ์ดํฐ์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ๊ฐ์ ๊ฐ์ต๋๋ค. ์ฌ๊ธฐ์ ์ฐธ์กฐ ๊ฐ์ ์์ฑ๋ ๊ฐ์ฒด๊ฐ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฃผ์, ๊ทธ ์์ฒด์ ๋๋ค. ๊ทธ๋์ ๊ฐ์ฒด๋ฅผ ํ ๋นํ ๋ณ์๋ฅผ ์ฐธ์กฐํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ์๋ ์ฐธ์กฐ ๊ฐ์ ํตํด ์ค์ ๊ฐ์ฒด์ ์ ๊ทผํฉ๋๋ค.
์ด๋ฌํ ์ ๋๋ฌธ์ ์์ ์ ์์ด์๋ ์์๊ฐ๊ณผ๋ ๋ค๋ฅธ ํน์ง์ ๊ฐ๋๋ฐ์. ์์ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ์ด๋ฏ๋ก ์์ ๊ฐ์ ๊ฐ๋ ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ฌํ ๋น์ ํตํด ๋ฉ๋ชจ๋ฆฌ์ ์์ ๊ฐ์ ์๋กญ๊ฒ ์์ฑํด์ผ ํฉ๋๋ค. ํ์ง๋ง ๊ฐ์ฒด๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ์ด๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ์ง์ ์์ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ์ฒด๋ฅผ ํ ๋นํ ๋ณ์์ ์ฌํ ๋น์ ํ์ง ์์์ผ๋ฏ๋ก ๊ฐ์ฒด๋ฅผ ํ ๋นํ ๋ณ์์ ์ฐธ์กฐ ๊ฐ์ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
๊ฐ์ฒด๋ ์์๊ฐ์ ๋นํด ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด ๋ณต์กํ๊ณ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค. ์์ ๊ฐ์ฒ๋ผ ํฌ๊ธฐ๊ฐ ์ผ์ ํ์ง๋ ์๊ณ , ํ๋กํผํฐ ๊ฐ์ด ๊ฐ์ฒด์ผ์๋ ์์ด์ ๋ณต์ฌํด์ ์์ฑํ๋ ๋น์ฉ์ด ๋ง์ด๋ญ๋๋ค. ์ฆ ๋ฉ๋ชจ๋ฆฌ์ ํจ์จ์ ์ฌ์ฉ์ด ์ด๋ ต๊ณ ์ฑ๋ฅ์ด ๋๋น ์ง์๊ฐ ์๋๋ฐ์. ๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ์ ํจ์จ์ ์ฌ์ฉ์ ์ํด ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํด ์์ฑํ๋ ๋น์ฉ์ ์ ์ฝํ๊ณ , ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ๊ฐ์ฒด๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ์ผ๋ก ์ค๊ณ๋์ด ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ํจ์จ์ฑ๊ณผ ์ฑ๋ฅ์ ์ํด ์ด๋ ์ ๋์ ๊ตฌ์กฐ์ ์ธ ๋จ์ ์ ๊ฐ์ํ ์ค๊ณ์ธ ๊ฒ์ด์ฃ .
์ด๋ฌํ ๊ตฌ์กฐ๋ก ์ธํด ํ๊ฐ์ง ๋จ์ ์ด ์์ ์ ์๋๋ฐ์. ๊ทธ๊ฒ์ ์์ ๊ฐ๊ณผ๋ ๋ค๋ฅด๊ฒ ์ฌ๋ฌ ๊ฐ์ ์๋ณ์๊ฐ ํ๋์ ๊ฐ์ฒด๋ฅผ ๊ณต์ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
var user = {
name: 'Jun'
}
var copy = person
๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์(์๋ณธ, user)๋ฅผ ๋ค๋ฅธ ๋ณ์(์ฌ๋ณธ, copy)์ ํ ๋นํ๋ฉด ์๋ณธ์ ์ฐธ์กฐ ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ๋ฉ๋๋ค. ์ด๋ฅผ ์ฐธ์กฐ์ ์ํ ์ ๋ฌ์ด๋ผ๊ณ ํฉ๋๋ค. ๋ ๊ฐ์ ์๋ณ์๋ ํ๋์ ๊ฐ์ฒด๋ฅผ ๊ณต์ ํฉ๋๋ค. ๋ฐ๋ผ์ ์๋ณธ ๋๋ ์ฌ๋ณธ ์ค ์ด๋ ํ์ชฝ์์ ๊ฐ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์๋ก ์ํฅ์ ์ฃผ๊ณ ๋ฐ๊ฒ ๋ฉ๋๋ค.
๊ฒฐ๊ตญ ๊ฐ์ ์ํ ์ ๋ฌ๊ณผ ์ฐธ์กฐ์ ์ํ ์ ๋ฌ์ ์๋ณ์๊ฐ ๊ธฐ์ตํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋์ด ์๋ ๊ฐ์ ๋ณต์ฌํด์ ์ ๋ฌํ๋ค๋ ๋ฉด์์ ๋์ผํฉ๋๋ค. ๋ค๋ง ์๋ณ์๊ฐ ๊ธฐ์ตํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ, ์ฆ ๋ณ์์ ์ ์ฅ๋์ด ์๋ ๊ฐ์ด ์์ ๊ฐ์ด๋ ์ฐธ์กฐ ๊ฐ์ด๋์ ์ฐจ์ด๋ง ์์ ๋ฟ์ ๋๋ค.
# ๐ ์ ๋ฆฌ
- ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ ์๋ ์ด์ ๋ก ์ธํด ๋ฐ์ดํฐ ํ์
์ด ํ์ํ๋ค
- ๊ฐ์ ์ ์ฅํ ๋ ํ๋ณดํด์ผ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด
- ๊ฐ์ ์ฐธ์กฐํ ๋ ํ ๋ฒ์ ์ฝ์ด ๋ค์ฌ์ผ ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด
- ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ์ด ๋ค์ธ 2์ง์๋ฅผ ์ด๋ป๊ฒ ํด์ํ ์ง ๊ฒฐ์ ํ๊ธฐ ์ํด
- ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ณ์๋ ์ ์ธ์ด ์๋ ํ ๋น์ ์ํด ํ์ ์ด ๊ฒฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌํ ๋น์ ์ํด ๋ณ์์ ํ์ ์ ์ธ์ ๋ ์ง ๋์ ์ผ๋ก ๋ณํ ์ ์๋ค.
- ์์๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ(immutable value)์ด๋ค. ๋ฐ๋ฉด ๊ฐ์ฒด(์ฐธ์กฐํ)์ ๊ฐ์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ(mutable)์ ๋๋ค.
- ์์ ๊ฐ์ ๋ณ์์ ํ ๋นํ๋ฉด ๋ณ์(ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ)์๋ ์ค์ ๊ฐ์ด ์ ์ฅ๋๋ค. ์ด์ ๋นํด ๊ฐ์ฒด๋ฅผ ํ ๋นํ๋ฉด ๋ณ์(ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ)์๋ ์ฐธ์กฐ ๊ฐ์ด ์ ์ฅ๋๋ค.
- ์์ ๊ฐ์ ๊ฐ๋ ๋ณ์๋ฅผ ๋ค๋ฅธ ๋ณ์์ ํ ๋นํ๋ฉด ์๋ณธ์ ์์ ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ๋๋ค. ์ด๋ฅผ ๊ฐ์ ์ํ ์ ๋ฌ(pass by value)๋ผ๊ณ ํ๋ค. ์ด์ ๋นํด ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์๋ฅผ ๋ค๋ฅธ ๋ณ์์ ํ ๋นํ๋ฉด ์๋ณธ์ ์ฐธ์กฐ ๊ฐ์ด ๋ณต์ฌ๋์ด ์ ๋ฌ๋๋ค. ์ด๋ฅผ ์ฐธ์กฐ์ ์ํ ์ ๋ฌ(pass by refrence)๋ผ๊ณ ํฉ๋๋ค.