자바스크립트가 버전 업그레이드 되면서 새로운 기능들이 추가가 되겠지만 이전 기능들도 살아 남았다.
기존 기능들이 계속 동작하도록 하려다보니 간단한 문법상 오류가 있어도 에러 없이 자바스크립트에서 처리를 해준다.
얄짤없이 문법적으로 오류가 나면 일단 에러나도록 해주는 지시자
금융권에서 주로 쓰이며, 그 외에는 잘 쓰이진 않는다.
use strict 를 쓰면 현대적인 방법으로 동작하게 할 수 있다.
"use strict";
스크립트 최상위에 명시해야함
"use strict";
// 아래 코드는 키워드(let) 없이 선언했음.
// 옛날에는 괜찮았지만 let, var, const 로 나뉘면서 잘못된 문법으로 취급.
num = 5;
console.log(num + 10);
// 매개변수의 이름이 같으면 엄격모드에서는 에러 표시
function tmp(num1,num1) {
let num1 = 1;
num1 = 2;
}
tmp(1,2);
010 사용이 안됨. 8진법 숫자이기 때문에 오류.
let ttt = 010 + 1111 + 2222;
javascript에서 제일 중요
스크립트 구문 하나당 요소 하나씩만 건드릴 수 있음.
클래스, 태그는 배열의 형태로 가져온다.
css 적용시 인라인 방식으로 적용된다.
id, class, tag 무엇으로 잡던지 우선순위 이제 없다.
순서대로 적용돼서 결국 마지막에 적용한 것이 결국 적용된다.
//현재 문서 안, 요소들 중에 ID가 box1인 요소 잡기
//그 안의 style 속성 잡아서 그 background에 red라는 값 넣기.
document.getElementById('box1').style.backgroundColor = "red";
//현재 문서 안, 요소들 중에 class가 box인 요소들 중에 x번째꺼 하나 잡기
//js는 한 라인에 하나만 건들일 수 있음! (여러개 건들일 수 있는 것은 jquery와 querySelector뿐.)
document.getElementsByClassName('box')[1].style.background = "blue";
document.getElementsByTagName('div')[1].style.background = "green";
-> green
스크립트는 싸우지 않는다. 그냥 덮어 쓴다.
스크립트에서 두번째 단어부터 첫글자는 대문자로
ex) backgroundColor, marginTop
사용 방법
get ElementBy~시리즈가 더 빠르다.
document.getElementById('아이디명')
document.getElementsByClassName('클래스명')[방번호]
document.getElementsByTagName('태그명')[방번호]
document.querySelector('')
document.querySelectorAll('')[방번호]
document.getElementById('parent').style.border = "1px solid";
document.getElementById('parent').style.backgroundColor = "skyblue";
document.getElementById('parent').style.boxSWhadow = "0 0 5px 0 #000";
let parent = document.getElementById('parent');
parent.style.border = "1px solid";
parent.style.backgroundColor = "skyblue";
parent.style.boxSWhadow = "0 0 5px 0 #000";
빈칸들도 노드로 치기 때문에 사용하기 애매함.
자식 노드들 다 찾기 : childNodes
이전노드 : 노드.previousSibling
다음노드 : 노드.nextSibling
<div id = "parent">
<div id = "child00"></div>
<div id = "child01"></div>
<div id = "child02"></div>
</div>
child01.previousElementSibling; -> child00
child01.previousSibling; -> 빈칸잡음
child01.previousSibling.previousSibling; -> child00
자식요소.parentElement부모.firstElementChild부모.lastElementChilddocument.getElementById('box1').innerHTML = "<h1>aa</h1>";document.getElementById('box1').innerText = "aa";document.getElementById('txt1').value = "aa";