Notice
Recent Posts
Recent Comments
Link
투케이2K
498. (javaScript) 자바스크립트 forEach 사용해 태그 공통 스타일 지정 및 p , h1 , div 태그에 json 데이터 pretty 정렬 출력 수행 본문
JavaScript
498. (javaScript) 자바스크립트 forEach 사용해 태그 공통 스타일 지정 및 p , h1 , div 태그에 json 데이터 pretty 정렬 출력 수행
투케이2K 2026. 3. 1. 09:55728x90
반응형
[개발 환경 설정]
개발 툴 : Edit++
개발 언어 : JavaScript

[소스 코드]
-----------------------------------------------------------------------------------------
[사전 설명 및 설정 사항]
-----------------------------------------------------------------------------------------
- 개발 환경 : Web
- 개발 기술 : JavaScript (자바스크립트) / JSON / forEach / JSON.stringify
- 사전) JSON.stringify 함수 간단 설명 :
>> JSON.stringify 는 자바스크립트 객체를 사람이 읽기 좋은 문자열(JSON 문자열)로 변환하는 함수입니다.
>> JSON.stringify 기본 형태 : JSON.stringify(value, replacer, space)
- value : 변환할 자바스크립트 데이터
- replacer : null (아무것도 걸러내지 않고 모든 데이터 그대로 변환) / 배열로 사용 (포함하고 싶은 key만 선택)
- space : 들여쓰기(indent)를 몇 칸으로 할지 결정 (숫자 2 → 2칸 들여쓰기 / 숫자 4 → 4칸 들여쓰기)
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
[소스 코드]
-----------------------------------------------------------------------------------------
<!DOCTYPE HTML>
<html lang="ko">
<head>
<title>javaScriptTest</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- 반응형 구조 만들기 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<!-- 내부 CSS 스타일 지정 -->
<style>
html, body {
width: 100%;
height: 100%;
margin : 0 auto;
padding : 0;
border : none;
background-color: #666;
}
</style>
<!-- [CDN 주소 설정] -->
<script src="https://code.jquery.com/jquery-latest.min.js"></script>
<!-- [자바스크립트 코드 지정] -->
<script type="module">
// --------------------------------------------------------------------------------------------------------------
// [html 최초 로드 및 이벤트 상시 대기 실시]
window.onload = async function() {
console.log("");
console.log("=========================================");
console.log("[window onload] : [start]");
console.log("=========================================");
console.log("");
try {
// -------------------------------------
// JSON 데이터 만들기
// -------------------------------------
const json = {
name: 'TWOK',
addr: 'seoul',
sex: true
};
console.log("default json : ", JSON.stringify(json));
// -------------------------------------
// ✅ JSON.stringify(data, null, 2) 방식 사용해 JSON 데이터 들여쓰기 수행
// -------------------------------------
const pretty = JSON.stringify(json, null, 2);
console.log("pretty json : ", pretty);
// -------------------------------------
// h1, p, div 태그 객체 정의
// -------------------------------------
const h1Tag = document.getElementById('h1Tag');
const pTag = document.getElementById('pTag');
const divTag = document.getElementById('divTag');
// -------------------------------------
// h1, p, div 태그 공통 스타일 동적 지정
// -------------------------------------
// whiteSpace = "pre-wrap" : 요소 안의 텍스트에서 줄바꿈(\n)과 연속 공백을 보존하면서도, 줄이 너무 길면 자동 줄바꿈합니다.
// -------------------------------------
// fontFamily = 'ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace' : 텍스트를 고정폭(모노스페이스) 폰트로 표시. JSON/코드 출력은 가독성이 좋아집니다.
// -------------------------------------
// lineHeight = "1.35" : 줄 간격을 설정합니다. 가독성과 밀도의 균형을 잡는 핵심 속성
// -------------------------------------
// margin = "0 0 12px 0" : 바깥 여백 (상·우·하·좌) 을 지정합니다
// -------------------------------------
[h1Tag, pTag, divTag].forEach(el => {
el.style.whiteSpace = "pre-wrap";
el.style.fontFamily = 'ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace';
el.style.lineHeight = "1.35";
el.style.margin = "0 0 12px 0"; // 필요 시
});
// -------------------------------------
// h1, p, div 태그에 pretty json 데이터 지정
// -------------------------------------
// textContent 는 문자열을 순수 텍스트로만 넣습니다.
// -------------------------------------
/*
pretty json : {
"name": "TWOK",
"addr": "seoul",
"sex": true
}
*/
// -------------------------------------
h1Tag.textContent = pretty;
pTag.textContent = pretty;
divTag.textContent = pretty;
}
catch (exception) {
console.error("");
console.error("=========================================");
console.error("[window onload] : [Exception] : 예외 상황 발생");
console.error("-----------------------------------------");
console.error(exception);
console.error("=========================================");
console.error("");
}
};
// --------------------------------------------------------------------------------------------------------------
</script>
</head>
<body>
<h1 id="h1Tag"></h1>
<p id="pTag"></p>
<div id="divTag"></div>
<!-- [태그에 즉시 추가하는 방법] -->
<!-- <div id="divTag" style="white-space: pre-wrap; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace; line-height: 1.35; margin: 0 0 12px 0;"></div> -->
</body>
</html>
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
[참고 사이트]
-----------------------------------------------------------------------------------------
[동적으로 div 레이아웃 생성 및 스타일 속성 지정 실시]
https://kkh0977.tistory.com/833
https://blog.naver.com/kkh0977/222390679369?trackingCode=blog_bloghome_searchlist
[body 클릭 이벤트 감지, 동적 div 레이아웃 생성 및 클릭 이벤트 확인 - document body onclick]
https://kkh0977.tistory.com/848
https://blog.naver.com/kkh0977/222392829774?trackingCode=blog_bloghome_searchlist
-----------------------------------------------------------------------------------------
728x90
반응형
'JavaScript' 카테고리의 다른 글
Comments
