2021-11-29 TIL

diaΒ·2021λ…„ 11μ›” 29일
0

멋사FE슀쿨1κΈ°

λͺ©λ‘ 보기
11/20
post-thumbnail

🦁 Day22

πŸ’» 였늘 보고 λ“£κ³  배운 것

1. 데이터 λ‹¨μœ„

8bit == 1byte
1024byte == 1KB
1024KB == 1MB
1024MB == 1GB
1024GB == 1TB
1024TB == 1PB

2. CPU(μ€‘μ•™μ²˜λ¦¬μž₯치)에 κ΄€ν•˜μ—¬

  • CPUλž€ μ»΄ν“¨ν„°μ˜ λ‘λ‡Œ, 머리와도 같은 것.

  • μΏΌλ“œμ½”μ–΄ β†’ 머리가 4개
    μ˜₯타코어 β†’ 머리가 8개
    ν—₯사코어 β†’ 머리가 16개

  • μ½”μ–΄κ°€ λ§Žλ‹€κ³  쒋은 것이 μ•„λ‹ˆλ‹€. μ„±λŠ₯(μ²˜λ¦¬μ†λ„)이 μ’‹μ•„μ•Όν•œλ‹€.

  • i3, i5, i7, i9 : μˆ«μžκ°€ 클 수둝 μ½”μ–΄ μˆ˜κ°€ λ§Žλ‹€. μˆ«μžκ°€ 크닀고 λ‹€ 쒋은 것이 μ•„λ‹ˆκ³  λͺ‡ μ„ΈλŒ€ 인지λ₯Ό 따져봐야 ν•œλ‹€.
    ex) 3μ„ΈλŒ€ i7 보닀 10μ„ΈλŒ€ i3κ°€ μ„±λŠ₯이 더 μ’‹λ‹€.

3. μ§„μˆ˜ 계산법

2μ§„μˆ˜ - 01 10
8μ§„μˆ˜ - 01234567 10
16μ§„μˆ˜ - 01234567abcdef 10

// 225λ₯Ό 10μ§„μˆ˜λ‘œ ν‘œμ‹œ
(10^2)*2 + (10^1)*2 + (10^0)*5 = 225
// 100을 2μ§„μˆ˜λ‘œ ν‘œμ‹œ
(2^2)*1 + (2^1)*0 + (2^0)*0 = 4
// 100을 8μ§„μˆ˜λ‘œ ν‘œμ‹œ
(8^2)*1 + (8^1)*0 + (8^0)*0 = 64
// 100을 16μ§„μˆ˜λ‘œ ν‘œμ‹œ
(16^2)*1 + (16^1)*0 + (16^0)*0 = 256

4. μžλ°”μŠ€ν¬λ¦½νŠΈ 기초

μžλ°”μŠ€ν¬λ¦½νŠΈμ— 데이터 νƒ€μž…μ€ μ™œ ν•„μš”ν•œκ°€

  • λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ 확보와 μ°Έμ‘°
    데이터 νƒ€μž…μ— 따라 ν•„μš”ν•œ λ©”λͺ¨λ¦¬ 곡간이 λ‹€λ₯΄λ‹€. λ”°λΌμ„œ 데이터 νƒ€μž…μ„ μ§€μ •ν•΄μ€ŒμœΌλ‘œμ¨ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 μžλ£Œν˜•μ— 따라 정해진 λ©”λͺ¨λ¦¬ 곡간 확보(ex. numberνƒ€μž…μ˜ κ°’ 100의 경우 8λ°”μ΄νŠΈ ν•„μš”)

  • 데이터 νƒ€μž…μ— μ˜ν•œ κ°’μ˜ 해석
    엔진이 λ©”λͺ¨λ¦¬μ— 값을 μ €μž₯ν• λ•ŒλŠ” 2μ§„μˆ˜λ‘œ μ €μž₯ν•œλ‹€. 이 μ €μž₯된 2μ§„μˆ˜μ˜ 값을 κ°€μ Έμ˜¬λ•Œ 데이터 νƒ€μž…μ— λ”°λΌμ„œ λ¬Έμžμ—΄μΈμ§€ μˆ«μžν˜•μΈμ§€ ν•΄μ„ν•œλ‹€. 예λ₯Ό λ“€μ–΄ λ©”λͺ¨λ¦¬μ— μ €μž₯된 2μ§„μˆ˜ κ°’ 0100 0001은 숫자둜 ν•΄μ„ν•˜λ©΄ 65이고 λ¬Έμžμ—΄λ‘œ ν•΄μ„ν•˜λ©΄ 'A'이닀.

λΉ„κ΅μ—°μ‚°μž

let a = 10
let b = '10'

a == b // true
// ν˜•λ³€ν™˜ ν•˜μ—¬ 비ꡐ

a === b // false
// 데이터 νƒ€μž…κΉŒμ§€ 비ꡐ
// aλŠ” number, bλŠ” stringμ΄λ―€λ‘œ false
'0' == 0 //true
0 == '' // true
0 == '0' // true
false == 'false' // false. ν•œ κΈ€μžλΌλ„ λ“€μ–΄κ°„ λ¬Έμžμ—΄μ€ true이닀. λ”°λΌμ„œ 'false'λŠ” true이닀.
false == '0' // true
false == null // false
false == undefined // false
false == NaN // false
!!null // false
!!undefined // false
!!NaN // false

object λ©”λͺ¨λ¦¬ μ£Όμ†Œ 확인

JSμ—λŠ” λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό 확인할 수 μžˆλŠ” λ‚΄μž₯ν•¨μˆ˜κ°€ μ—†λ‹€. λ©”λͺ¨λ¦¬ μ£Όμ†Œμ— μ§μ ‘μ μœΌλ‘œ μ ‘κ·Όν•΄μ„œ 값을 κ°€μ Έμ˜€λŠ” 방식은 μš΄μ˜μ²΄μ œκ°€ μ‚¬μš©ν•˜κ³  μžˆλŠ” 값을 μ‹€μˆ˜λ‘œ μ œμ–΄ν•΄μ„œ μ‹œμŠ€ν…œ μš΄μ˜μ— 치λͺ…적인 였λ₯˜λ₯Ό λ°œμƒμ‹œν‚¬ κ°€λŠ₯성이 있기 λ•Œλ¬Έμ— 직접적인 λ©”λͺ¨λ¦¬ μ œμ–΄λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.(좜처: λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ λ”₯λ‹€μ΄λΈŒ p36)

Boolean()

Boolean('Tina') // true. λ¬Έμžμ—΄μ€ true
Boolean('') // false. λΉˆλ¬Έμžμ—΄μ€ false
Boolean(1) // true
Boolean(0) // false
Boolean(' ') //true

μ‹€λ¬΄μ—μ„œ 주둜 μ‚¬μš©ν•˜λŠ” string νƒ€μž… ν˜Ήμ€ boolean νƒ€μž… ν˜•λ³€ν™˜ν•˜λŠ” 방법

123 + '' // '123'
// String은 + μ—°μ‚°μ—μ„œλ§Œ String으둜 ν˜•λ³€ν™˜λœλ‹€.
!!true // true
!!'Tina' // true
!!'' // false
!!1 // true
!!0 // false
!!undefined //false
!!NaN // false

음수 인덱싱

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 음수 인덱싱을 ν—ˆλ½ν•˜μ§€ μ•ŠλŠ”λ‹€.

cars[-1] (X)

λΆ€λ™μ†Œμˆ˜μ 

0.1 + 0.2 == 0.3 // false
console.log(0.1 + 0.2) // 0.30000000000000004

μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ numberλŠ” 64 λΉ„νŠΈ IEEE 754 ν˜•μ‹μ„ λ”°λ₯΄λ©° 이 ν˜•μ‹μ— 따라 ν‘œμ‹œν•œ 0.1은 μ •ν™•ν•˜κ²Œ 0.1이 μ•„λ‹ˆκ³  0.1에 κ°€κΉŒμš΄ 2μ§„λ²•μœΌλ‘œ ν‘œμ‹œν•œ μˆ˜μ΄λ‹€. 10μ§„μˆ˜ μ†Œμˆ˜μ μ„ 2μ§„λ²•μœΌλ‘œ ν‘œμ‹œν•˜λ €λ‹€λ³΄λ‹ˆ λ¬΄ν•œμ†Œμˆ˜κ°€ λ‚˜μ˜€κ²Œ 되고 μœ ν•œν•œ 컴퓨터 μžμ›μœΌλ‘œ λ‹€ ν‘œμ‹œν•  μˆ˜κ°€ μ—†μ–΄ μœ ν•œν•œ 수둜 λ°”κΎΈμ–΄ κ³„μ‚°ν•˜λ‹€λ³΄λ‹ˆ κ³„μ‚°μ˜€λ₯˜κ°€ λ°œμƒλœλ‹€.

λ…Όλ¦¬μ—°μ‚°μ—μ„œ ν‘œν˜„μ‹ 전체λ₯Ό 평가 ν›„ κ²°κ³Όκ°’ 리턴

μ•žμ˜ ν‘œν˜„μ‹μ—μ„œ ν™•μ‹€ν•œ 결과값이 λ‚˜μ™€λ„ λ’€μ˜ ν‘œν˜„μ‹κΉŒμ§€ λκΉŒμ§€ 읽은 ν›„ κ²°κ³Όκ°’ 리턴

true || console.log('hello') // true
false || console.log('hello') // hello
// μ•žμ—κ°€ false라도 λ’€μ—κΉŒμ§€ λ³΄λ―€λ‘œ hello 좜λ ₯



참고자료
https://velog.io/@sgyoon/2019-09-15-01
https://bigtop.tistory.com/47
λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ Deep Dive p68

profile
μ–Όλ ˆλ²Œλ ˆ ν”„λ‘ νŠΈμ—”λ“œ 개발자

2개의 λŒ“κΈ€

comment-user-thumbnail
2021λ…„ 11μ›” 30일

μ˜€λŠ˜λ„ 잘 μ •λ¦¬λœ λ‚΄μš©λ³΄λ©° ν•œ 수 배우고 κ°‘λ‹ˆλ‹€. πŸ‘

1개의 λ‹΅κΈ€