YeonjuOHYE / javascript

0 stars 0 forks source link

유.돈.노#2) 값 #2

Open YeonjuOHYE opened 5 years ago

YeonjuOHYE commented 5 years ago

2.1 배열

a[1]; undefined

이 때 빈슬롯은 명시적으로 undefined 해준 것과는 다르다.
- 배열도 객체! 그러므로 프로퍼티 추가 가능 -> <i>하지만 왠만하면 쓰지 마셈...</i>

#### 2.1.1 유사 배열
객체도 배열처럼 쓸 수 있다. 
how?
apply, call을 이용하여 Array.prototype  함수 호출 

배열 비슷한 arguments 객체를 사용하여 인자를 리스트로 가져오는 
```javascript
function foo() {
var arr = Array.prototpye.slice.call(arguments);
arr.push("bam"); // 배열
}

이는 비권장 -> Array.from()으로 대체

2.2 문자열

문자배열과 비교

2.3 숫자

정수 따로 구분 없이 부동 소수점 숫자도 아우른다 js에서 정수란? 부동 소수점 값이 없는 값 부동 소수정 표준은 IEEE 754

2.3.1 숫자 구문

2.3.2 작은 소수값

0.1 + 0.2 === 0.3 (false)

왜냐 ? 0.1 은 실제로는 0.1000003 이런식

그렇다면 어떻게 비교? 반올림 오차 Number.EPSILON으로 비교

function compare(a,b) {
 return Math.abs(n1 - n2) < Number.EPSILON
}

2.3.3 안전한 정수 범위

안전하게? 즉, 표현값과 실제 값이 정확하게 일치한다고 (정수에 한해) 장담횔 수 있는 NUMBER.MAX_SAFE_INTEGER, NUMBER.MIN_SAFE_INTEGER 이것보다 큰수는 라이브리러닌 유틸리티 사용해라

2.3.4 정수인지 확인

Number.isInteger() Numer.isSafeInteger()

2.3.5 32비트 정수

32비트 숫자에만 가능한 연산 -> a | b (비트 or 연산자) ※ Nan, Infinity 일부 특수 연산자는 32비트에서 안전하지 않음!

2.4 특수 값

2.4.1 값 아닌 값

undefined: 실종된 값 null:빈 값

void a => 이거는 결과값 undefined 로 만듦 근데 굳이 사용하지 말고 걍 return 사용한다

2.4.3 특수 숫자

1.NaN : 숫자 아님 , 어떤 값과도 동등하지 않다. isNan() 함수가 NaN 여부를 말해준다. 하지만 isNan()의 단점은 다른 타입도 Nan으로 표시한다는 것 따라서 isNan() => Number.isNan()으로

2.무한대

2.4.4 특이한 동등 비교

이런 특이한 동등비교를 위해 Object.is()가 등장 (==, === 가 아전한 경우라면 사용 x)

2.5 값 vs 레퍼런스

포인터 개념도 없고 참조 방법도 다르다. 어떤 변수가 다른 변수 참조 x => 자바스크립트 레퍼런스란 공유된 값을 가르키므로 서로 다른 10개의 레퍼런스가 있다면 이들은 저마다 항상 공유된 단일값을 개별적으로 참조

YeonjuOHYE commented 5 years ago

⇡1) 불변 배열 메서드 join과 같이 원래 값 바꾸지 않고 새로 값 주는 것들

스크린샷 2019-08-08 오전 1 00 31 스크린샷 2019-08-08 오전 1 00 04