void 0 이란?

라이브러리 코드를 학습하던 중에 이런 코드를 발견했다. 
if(params === void 0){ }

void 0이 뭐지? 
검색해 본 결과 void는 javascript의 연산자이고 항상 undefined를 반환한다고 한다.
void 0, void 'hello' 등 전부다 undefined를 한다.

그럼 왜? undefined를 안쓰고?
if(params === undefined){ }

첫번째로는 undefined는 항상 undefined가 아닐 수도 있다는 얘기다.
var undefined = 'hello';

console.log(undefined);
// hello

그리구 짧아서 브라우저로 전송되는 바이트 수를 줄일 수 있고 관용적이라고 한다.

MDN링크

'개념' 카테고리의 다른 글

CND이란?  (0) 2019.05.16
MVC 패턴  (0) 2019.05.16
CSS를 이용해 객체 가운데 위치하기!  (0) 2018.10.29
구글 API KEY생성하는 법  (0) 2018.10.26
let 키워드, const 키워드  (0) 2018.10.23
ES6 매개변수 기본 정의  (0) 2018.10.16
javascript .map() 메서드를 알아보자  (0) 2018.09.17
javascript .filter() 메서드를 알아보자.  (0) 2018.09.17


html 기본 구조


필요할 때, 자꾸 검색해서 찾아야 해서 간단한 구조 작성해둔다.

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta http-equiv="Content-Type" charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    <meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1.0">
    <title>Page Title</title>
  </head>
  <body>
    <h1>타이틀</h1>
    <p>본문</p>
  </body>
</html>

<meta http-equiv="Content-Type" charset="utf-8" /> 해당 문서 언어 설정

<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> 렌더링 모드 설정 (최신 렌더링 모드로 강제)

<meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1.0"> 뷰포트 설정(모바일 접속 시 모바일 맞춤)

 

클릭 -> 스크롤 이동을 구현해보도록 하겠다.

scrollintoview()를 사용하면 간단하다.

 

 

HTML

<p>
  클릭하세요
  <button id="box1" type="button">box1</button>
  <button id="box2" type="button">box2</button>
  <button id="box3" type="button">box3</button>
  <button id="box4" type="button">box4</button>
  <button id="box5" type="button">box5</button>
  <button id="box6" type="button">box6</button>
  <button id="box7" type="button">box7</button>
</p>
<div class="box1">박스1입니다.</div>
<div class="box2">박스2입니다.</div>
<div class="box3">박스3입니다.</div>
<div class="box4">박스4입니다.</div>
<div class="box5">박스5입니다.</div>
<div class="box6">박스6입니다.</div>
<div class="box7">박스7입니다.</div>

클릭하여 이동할 수 있게 버튼을 만들어준다.

 

 

CSS

body,div{
  margin:0;
  padding:0;
}

div{
  display: flex;
  align-items: center;
  justify-content: center;
}

.box1{ background-color:red; }
.box2{ background-color:orange; }
.box3{ background-color:yellow; }
.box4{ background-color:green; }
.box5{ background-color:blue; }
.box6{ background-color:navy; }
.box7{ background-color:purple; }

 

 

JS

const btnArr = document.getElementsByTagName('button');

for(let i = 0; i < btnArr.length; i++){

  btnArr[i].addEventListener('click',function(e){
    e.preventDefault();
    document.querySelector('.box' + (i + 1)).scrollIntoView(true);
  });

}

 

버튼의 index를 이용해서 class를 검색하여 엘리먼트를 찾는다.

*index로 찾은 엘리먼트를 통해 scrollIntoView() 해주기 때문에 class나 id가 수정되면 스크립트 오류가난다.

 

예제

예제 버튼 클릭 시 티스토리 스크롤도 top되는 현상이 생겨버렸다.!! codePen가서 해보시길..

See the Pen scrollIntoView example by leeyoonseo (@okayoon) on CodePen.

 

크롬만 테스트했고, scrollintoview 메서드가 궁금하면 MDN을 살펴보자.

https://developer.mozilla.org/ko/docs/Web/API/Element/scrollIntoView

 

 


자동으로 연도 변경하여 삽입하기


사이트 하단에 회사 '창립 년도 ~ 현재 년도' 까지 적어두는 부분을 많이 봤을 것이다.

기업들이 보통 많이 작성해두는데, 수동으로 작성하는 곳은 없으리라 믿는다. 


캡쳐 : 삼성 홈페이지


자세히 보면 이렇게 ↓↓


HTML

<footer>
  2010~<span id="thisYear"></span>
</footer>
자동 값을 넣으려는 곳 id 값을 주었다.


JS

const _date = new Date();
const _year = _date.getFullYear();
const thisYear = document.getElementById('thisYear');

thisYear.innerText = _year;
id 값으로 변수를 만들어 그 안에 innerText해서 get한 값을 넣었다.


new Date(); 가 궁금하면 MDN을 참고하자!

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date



[예제]

See the Pen vVzNRx by leeyoonseo (@okayoon) on CodePen.


+ Recent posts