HTML °ü·Ã °£´ÜÇÑ ÆÁÀ» Á¤¸®ÇÑ´Ù.
box-sizing DIV Å©±â Á¤È®ÇÏ°Ô ÁöÁ¤Çϱâ
box-sizingÀÇ ¼Ó¼ºÀÌ ¸î°³ ÀÖÁö¸¸ ¿©±â¼´Â content-box¿Í border-box¸¸ ¼³¸íÇÑ´Ù.
content-box :
- box-sizingÀÇ ±âº»°ªÀº content-boxÀÌ´Ù.
- width ¿Í height ¼Ó¼ºÀº ÄÁÅÙÃ÷¸¸ Æ÷ÇÔÇÑ´Ù.,
- padding, border, margin Àº Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù.
border-box:
- width ¿Í height ¼Ó¼ºÀÌ padding, border¸¦ Æ÷ÇÔÇÑ´Ù.
- marginÀº Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù.
- ¹Ú½ºÀÇ Å©±â¸¦ Á¤È®ÇÏ°Ô Á¤ÇÒ¼ö ÀÖ´Ù.
box-sizing:border-box;
ÁöÁ¤ÇÑ ¿ä¼Ò³»¿¡¼ id·Î ¿ä¼Ò ã±â
id´Â À¯ÀÏÇϱ⠶§¹®¿¡ ÁöÁ¤ÇÑ ¿ä¼Ò ³»¿¡¼ getElementById ÇÔ¼ö¸¦ »ç¿ëÇÒ¼ö ¾ø´Ù.
querySelector ÇÔ¼ö¸¦ »ç¿ëÇؼ ¿ä¼Ò¸¦ ãÀ»¼ö ÀÖ´Ù.
getElementsByTagName ÇÔ¼ö³ª getElementsByClassName ÇÔ¼ö ¶ÇÇÑ ÁöÁ¤ÇÑ ¿ä¼Ò ³»¿¡¼ »ç¿ë ÇÒ¼ö ÀÖ´Ù.
let el = document.getElementById('keyboard_id');
el = document.getElementById('child_id'); let child = el.querySelector('#child_id');
¼Ó¼º À̸§À» ¹®ÀÚ¿·Î ¹Ù²Ù±â
¼Ó¼º À̸§À¸·Î ¹®ÀÚ¿À» ¾ò´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.
let animal = {
none: 0,
cat: 1,
dog: 2
};
function propName(prop, value){
for(var i in prop) {
if (prop[i] == value){
return i;
}
}
return false;
}
let pn = propName(animal, animal.dog);
´ÙÀ½°ú °°ÀÌ ¹®ÀÚ¿À» ÀÌ¿ëÇØ ¼Ó¼ºÀÇ ÇÔ¼ö¸¦ ½ÇÇà ÇÒ¼öµµ ÀÖ´Ù.
¼Ó¼ºÀ̸§ÀÌ ¼Ó¼º °´Ã¼¿¡ Á¸Àç ÇÏ´ÂÁö üũ ÈÄ ½ÇÇà ÇÑ´Ù.
let tooltipState = {
leftMove : function() {
console.log('tooltipState leftMove');
},
rightMove : function() {
console.log('tooltipState rightMove');
}
};
let stateText = 'leftMove';
let exist = propName(tooltipState, tooltipState[stateText]);
if(exist) {
tooltipState[stateText]();
}
°á°ú)
tooltipState leftMove
¹è¿ Á¦°Å
pop ÇÔ¼ö·Î °ªÀ» Á¦°ÅÇÑ´Ù.
let list = [1, 2, 3, 4, 5];
while (list.length > 0)
list.pop();
ÀÚ½Ä ¿ä¼Ò ¸ðµÎ Á¦°Å
let element = document.getElementById('Parent_Id');
while (element.firstChild) {
element.removeChild(element.firstChild);
}
ÇÔ¼ö°¡ Á¸Àç ÇÏ´ÂÁö °Ë»çÇϱâ
function initUi() {
console.log('run initUI');
}
if(typeof initUi == 'function'){
initUi();
}
parentElement or parentNode
parentElement : ºÎ¸ð ³ëµå°¡ ¾øÀ¸¸é nullÀ» ¹ÝȯÇÑ´Ù.
parentNode´Â : ºÎ¸ð ³ëµå°¡ ¾øÀ¸¸é Document Node¸¦ ¹ÝȯÇÑ´Ù.
¿¤¸®¸ÕÆ® º¹Á¦
cloneNode(true)¸¦ »ç¿ëÇÏ¸é ¿ä¼Ò¸¦ º¹Á¦ ÇÒ¼ö ÀÖ´Ù.
var cloneElement = srcElement.cloneNode(true);
let srcEl = document.getElementById('keyboard_id');
if(!srcEl.parentElement)
throw new Error("Parent element does not exist.");
let cloneEl = srcEl.cloneNode(true);
srcEl.parentElement.appendChild(cloneEl);
cloneEl.style.left = '500px';
var elKey = cloneEl.querySelector('#Cursofr_Left');
elKey.textContent = 'CopyTest';
ÀÚ¹Ù½ºÅ©¸³Æ® Object Deep Copy
ÀÚ¹Ù½ºÅ©¸³Æ® Object¸¦ º¹»çÇÑ´Ù.
function deepcopy(obj) {
if (obj === null || typeof obj !== 'object') {
return obj;
}
const copiedObject = obj.constructor();
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
copiedObject[key] = deepcopy(obj[key]);
}
}
return copiedObject;
}
Å×½ºÆ® ÄÚµå
const now = new Date();
let arr = [1, 2, 3, 4, now];
let temp = deepcopy(arr);
temp[0] = 100;
console.log(arr);
console.log(temp);
document to html string
ÇöÀç ÆäÀÌÁö Àüü¸¦ HTML ¹®ÀÚ¿·Î º¯È¯ÇÑ´Ù.
µð¹ö±ëÀ» À§ÇØ HTML·Î ÀúÀåÇÑ´Ù.
´ÙÀ½ 2°¡ÁöÁß¿¡ Çϳª¸¦ ½ÇÇàÇÏ¸é µÈ´Ù.
console.log(document.getElementsByTagName('html')[0].innerHTML);
or
console.log(document.documentElement.outerHTML);
What is the difference between the selectors ¡°.class.class¡± and ¡°.class .class¡±?
.class1.class2: µÎ°¡Áö Ŭ·¡½º¸¦ ÇÔ²² »ç¿ë ÇÒ¶§ÀÌ´Ù.
<div class="class1 class2">...</div>
.class1 .class2: °ø¹éÀÌ ÀÖÀ¸¸é ÀÚ½Ä ³ëµå°¡ ÀÖÀ»¶§ ÀÌ´Ù.
<div class1="class1">
<div class2="class2">
...
</div>
</div>
.class1, .class2: ½°Ç¥°¡ ÀÖÀ¸¸é µÎ Ŭ·¡½º ¸ðµÎ ÁöÁ¤ÇÑ ½ºÅ¸ÀÏÀ» °¡Áú¼ö ÀÖ´Ù.
.class1 > .class2: class1ÀÇ Á÷°è ÀÚ¼ÕÀÌ class2À϶§ Àû¿ë µÈ´Ù.
<div class1="class1">
<div class2="class2">
...
</div>
</div>
|