【 오늘 정리하고 싶은 것 】
.push = '삭제 된 배열의 값' ex) 'per' , '3'
.pop = 추가 된 배열의 length
- 스코프
var : 함수스코프 ( 쓰면 회사 짤림 )
let,const : 블록스코프 (지역변수) ---> if,for,while ...
블록스코프는, 모든 코드블록내에서 선언 된 변수가
코드블록 내에서만 유효하다
expect().to.deep.equal(); 아래와 비슷한 맥락인데,
배열이나 객체는 주소가 같은지 비교해준다
expect().to.equal(); 왼쪽 괄호 값과 오른쪽 값이 같은지 비교
expect는 #chai 의 함수 ? 여서 콘솔도구에서는 안찍혀서
VS코드에서 install 이 잘되었다면 찍힌다.
콘솔도구에 console.log 랑 비슷한 맥락인거같다.
Object.keys = 개수확인
Object.length = 확인안됨
window 라는 전역객체가 존재함
이거는 따로 찾아봐야할 듯 하다
깊은복사 , 얕은복사가 있다.
깊은복사는 for중복으로 하는방법만 들었다 (완전하게 다른주소)
얕은복사는 우리가 자주쓰는 slice
--> [1,2[3,4]] 이걸 slice 하면
1,2는 값이 복사되고 [3,4]는 주소가 복사된다
【 임시저장 내용 】
1. document.querySelector
-> html에 선언 된 ID/class 내용을 js파일로 가져와서 작업하고 싶을때
document.querySelector('') 로 가져올 수 있다.
2. function 으로 시작하는 함수 선언식
<var & 함수선언문> 에서만 호이스팅이 일어난다.
var 변수/함수의 선언만 위로 끌어 올려지며, 할당은 끌어 올려지지 않는다.
function foo() { // 함수선언문 ---> 호이스팅 O
console.log("hello");
}
var foo2 = function() { // 함수표현식 ---> 호이스팅 X
console.log("hello2");
}
3. 제곱근
parseInt(Math.sqrt()) // 소숫점 없는 제곱근 값
Math.sqrt() // 제곱근 , 소수 다 나온다
parseInt() // 소숫점 사라짐
N = A * B
A와 B중 하나는 반드시 N의 제곱근 보다 작거나 같다.
그래서 제곱근을 구할 때 제일 작은 약수 2를 제외하고
나머지는 제곱근 아래로만 구한다