str.substring
vs str.slice
: 음수는 끝자리부터 카운트하는 slice가 보다 직관적. 숫자 하나만 입력하면 숫자 문자열만큼(str[num-1]까지) 잘라냄.array.pop()
, array.push()
, array.shift()
, array.unshift()
array1.concat(arr2)
, array.slice([start],[end])
Array.isArray()
console.table(array)
배열 변형시키는 메소드 vs 변형시키지 않는 메소드
newarr =
할당해서 새로 풀자array.slice( ~, ~)
vs. array.pop()
주소값 동일한지 중요
주소값 동일한지는 배열을 새로 할당하지 말라는 것과 같은 건가? → appay.prototype.slice( , ) 쓰지 말라는 것 == 복사하지 말라는 것
array.splice(시작점, 갯수)
array.join()
// array.join('')
: 배열의 요소를 합쳐 문자열로 나타내줌
null은 원시 타입
전역 변수 let, const 없이 선언 방지해주는 것 블록 맨 앞에 'use strict' 써주기.
원시 자료 vs 참조 자료에서 객체를 복사하는 게 아니라 주소값만 복사하는 개념. 주소값을 갈아주면 그 주소값을 사용하는 값 모두 바뀌어 나타남.
원시 자료와 달리 참조 자료는 heap이라는 공간에 값이 할당되고 같은 주소를 쓰는 배열, 객체에서 다른 값을 할당할 경우 heap에 접근 가능?
같은 주소를 바라보고 있는 여러개의 변수 중에서 (즉, 하나의 참조 자료를 바 라보고 있는 복수의 변수 중에서) 한 변수에 원시 자료가 할당된다면 기존 참조 자료에 접근할 수 없다. → 기존 참조 자료는 변하지 않음
...array
...args
: rest parameter, rest syntax라고 부름. 남아있는 모든 인자를 하나의 배열에 담음.
클로저 함수: 외부 함수의 변수에 접근할 수 있는 내부 함수
[번역] 자바스크립트 스코프와 클로저(JavaScript Scope and Closures)
디버깅 과정 잘 나와있음.
for ~ in
vs. for ~ of
[파일명]
' → (파일별로 다 하고 나면) git push origin master
+
is ambiguous. It can mean "concatenate" or "add". Since one side is a string, it is taken to mean "concatenate", hence the result is 11 (which, by the way, was one of my favourite jokes as a young child. That and "1 + 1 = window", as shown visually:│┼│ ニ ⊞
)
. however has only one meaning: subtract. So it subtracts.
표현 1
: 함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것표현 2
: 함수가 자신이 위치한 코드에 상관없이 함수 선언문 형태로 정희한 함수의 유효 범위는 코드의 맨 처음부터 시작Object.assign( ~~ , ~~)
으로는 깊은 복사를 할 수 없다.display: flex;
→ 부모 박스에 입력flex: 1(n) 0 auto(0);
→ 자식 박스에 입력<hr>
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
}
flex-direction: column;
부모에 입력