console.log(window.innerWidth);
> 803
console.log(window.innerHeight);
> 608
인수(value, index, array)로 받은 함수를 배열의 요소별로 한 번식 실행한다.
let array = [1, 2, 3, 4, 5];
let sum = 0;
array.forEach(function(value){ sum += value; });
console.log(sum); // 15
array.forEach(function(v, i, arr){ arr[i] = v*v; });
console.log(array); // [1, 4, 9, 16, 25]
인수(value, index, array)로 받은 함수를 배열의 요소별로 한 번식 실행하며, 마지막에 그 함수가 반환한 값으로 새로운 배열을 생성한다.
map() 메서드의 반환값은 원본 배열과 같은 개수의 원소가 들어 있는 배열이다.
let a = [1, 4, 9, 16, 25];
let b = a.map(Math.sqrt); //제곱근 구하기
console.log(b); // [1, 2, 3, 4, 5]
//객체 배열의 요소 순회
let persons = [
{name: "Tom", age: 17},
{name: "Huck", age: 18},
{name: "Becky", age: 19}
];
let names = persons.map(person => person.name);
console.log(names); // ['Tom', 'Huck', 'Becky']
[]
은 변수로 접근 가능하지만, .
은 바로 객체의 속성에 접근한다.
[]
은 객체에 속성값이 문자열이라면 전부 접근가능하다.
let object = {
a : 1,
b : 2,
"c-d": 3,
"0e" : 4,
};
let a = 'b';
console.log(object[a] + ' vs ' + object.a); // 2 vs 1
console.log(object.c-d) // ReferenceError: d is not defined
console.log(object.0e)// SyntaxError
object[a]
에서는 a가 변수가 되어 실제로 객체 object의 속성 b의 값인 2를 출력하는 object.a
에서는 a가 변수가 아닌 실제 속성 a에 접근하여 1을 출력<div id='content'>
Hello!
<span style='display:none'>innerText는 볼 수 없어😛</span>
</div>
const content = document.getElementById('content');
console.log(content.innerHTML);
// HTML 전체를 다 가져옴
// Hello!
// <span style='display:none'>innerText는 볼 수 없어😛</span>
-----------------------------------------------------
console.log(content.innerText);
// 사용자에게 보여지는 텍스트만 가져옴
// 숨겨진 텍스트는 사용자에게 보여지지 않기 때문에 'Hello!'만 가져옴
-----------------------------------------------------
console.log(content.textContent);
// 숨겨진 텍스트까지 포함해서 텍스트값을 모두 다 가져옴
// Hello!
// innerText는 볼 수 없어😛
'Element'의 속성으로, element내에 포함 된 HTML 또는 XML 마크업을 가져오거나 태그와 함께 입력하여 내용을 직접 설정할 수 있다. 즉, innerHTML
을 사용하면 내부 HTML 코드를 JavaScript 코드에서 새 내용으로 쉽게 변경할 수 있다.
document.documentElement.innerHTML = "<p>innerHTML</p>"
// html 코드와 작성 가능
document.documentElement.innerHTML =
"<span style='color:blue'>innerHTML</span>"
// 스타일 적용, 파란색으로 innerHTML 출력
document.body.innerHTML = "";
// 빈 문자열을 넣으면 body의 전체 내용을 지움
'Element'의 속성으로, element내에서 사용자에게 보여지는 텍스트 값을 가져오거나 설정할 수 있다.
document.documentElement.innerText = "<p>innerText</p>"
// html태그를 넣으면 태그도 text값으로 인식하고
// <p>innerText</p> 문자열 그대로 출력
<table>
, <tbody>
, <tr>
요소 등의 테이블 요소를 수정할 수 없음'Node'의 속성으로, 사용자에게 보여지는 text값만 읽어오는 innetText와는 달리 <script>
나 <style>
태그에 상관없이 해당 노드가 가지고 있는 텍스트 값을 모두 읽어온다.
주어진 CSS 선택자와 일치하는 문서 내 첫 번째 Element를 반환한다. 일치하는 요소가 없으면 null을 반환한다.
document.querySelector(selectors);
querySelector와 사용 방법은 동일하며,주어진 CSS 선택자와 일치하는 모든 요소를 반환한다. 이때, 배열과 비슷한 객체인 NodeList를 반환한다. 반환 객체가 nodeList이기에 for문 또는 forEach문을 사용한다.
elementList = parentNode.querySelectorAll(selectors);
querySelectorAll("#id,.class");
//","를 사용하면 여러 요소를 한번에 가져올 수 있음
EventListener는 이벤트가 발생했을 그 처리를 담당하는 함수르 가르키며, Evnet Handler라고도 한다.
특정 element에서 이벤트가 발생하면, 웹 브라우저는 그 요소에 등록된 EventListener를 실행시킨다.
<button onclick="btn-click">click</button>
object.onclick = function(){Script};
object.addEventListener("clcik", script);
HTTP Cookie(웹 쿠키, 브라우저 쿠키)란 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각이다. 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데이터를 함께 전송한다. 두 요청이 동일한 브라우저에서 들어왔는지 아닌지를 판단할 때 주로 사용한다.
<이름>=<값>
형태의 단순한 문자열Cache란 주어진 리소스의 복사본을 저장하고 있다가 요청 시에 그것을 제공하는 임시 저장소이다.
참고문서
object, https://medium.com/sjk5766/javascript-object-key-vs-object-key-차이-3c21eb49b763
innerHTML vs innerText vs textContent, https://velog.io/@kim_unknown_/JavaScript-Difftext
click event, https://goddino.tistory.com/68
cookie, https://www.daleseo.com/http-cookies/
본 후기는 유데미-스나이퍼팩토리 10주 완성 프로젝트캠프 학습 일지 후기로 작성 되었습니다.