
- 클래스에 줄때
document.getElementsByClassName("")[몇번째].style.원하는 속성="속성값"- 아이디에 줄때
document.getElementsById("").style.원하는 속성="속성값"
1.일어날 일 만들어주기 _ 함수 (이벤트 실행시)
function upalert(even){ alert("버튼을 눌렀군요") } //버튼을 눌렀을 때 alert창이 뜬다2.실행할 이벤트 명령해주기_보통 for 문과 같이 사용된다.
button.addEventListener("click"<-이벤트 기재 , upalert <-일어날 일 함수)-> 버튼을 클릭하면 alert창이 뜬다
1.DOM요소 추가
const appendDOM = document.createElement(태그) // DOM은 브라우저에 보이는 요소가 아니기때문에 JQuery에서 html 컨텐츠를 한번에 붙여 넣는 것 과는 다르다.-> .createTextNode(컨텐츠를 담는 메소드)2.추가한 DOM요소 붙여줄 위치 지정
document.body(부모DOM).appendChlid(appendDOM) //바디에 요소를 추가한다.
- 변수는 크게 두 부분으로 나뉜다.
1.선언부2.할당부let a ; //a라는 변수를 선언함a = "문자열" ; // "문자열" 이라는 할당값을 줌
- 선언부와 할당부를 한번에 해결하는게 보편적
let a = "문자열"
- 변수에는 3가지 종류의 변수가 있다.
이 변수들은 각자의 특징이 다르다.
1.var : 함수레벨 스코프 , 재선언/재할당 가능
2.let : 블록({})레벨 스코프 , 재할당만 가능
3.const : 블록({})레벨 스코프
- 사실 const는 변수가 아닌 변하지 않는값인 상수이다.
function anything (event){ var a = "아무거나"; let b = "쓰지" ; const c= "마세요" ; -- if(event===1){ let b = "적어도" ; const c = "되나" ; console.log(a,b,c); } //let과 const는 블록레벨 변수라 if문에서 다시 선언해도 문제없이 출력된다. -- console.log(a,b,c) }-> event에 1이 아닌 다른게 들어가면 [아무거나 쓰지 마세요]가 출력되겠지만, 1이 들어가게 되면 [아무거나 적어도 되나 , 아무거나 쓰지마세요] 두개가 출력된다. 하나의 함수안에서 변수의 이름을 같게 했음에도 문제 없이 출력되는 이유는 조건문의 블록 안의 변수는 조건문의 블록 안에서만 일을 하기때문이다.
또한 a는 함수의 모든곳에서 관여하기때문에 조건문안에 a를 선언하지 않아도 콘솔에 띄울 수 있는것이다.
1.함수 선언식
function func1(){ ... }2.함수 표현식
let func2 = function func(){ ... } //func = 함수이름 _ 생략 가능하다.3.화살표 함수(함수 표현식 축약형)
let func3 = () => { ... }
- 모든 ()안에는 당연히 매개변수가 들어감
- class의 구성
- 객체를 정의하기 위한 상태 + 실행할 함수
class Cat{ constructor(){ 객체를 정의하기 위한 상태} //생성자 함수 func(){ ... } //실행할 함수 }
--- 클래스를 생성한다. class myFamily { constructor(name){ this.name = name(상태); } // this는 myFamily를 가르킨다. showName(){ console.log(this.name) } } --- 클래스에 값을 넣는다. let myFmly = new myFamily("정혜원") // 넣을 값 = 우리가족 이름, new는 클래스를 생성해서 새로운 객체를 만들때 사용(새로운 값을 넣을때) ---클래스 안의 값 불러오기 myFmly ->{name : 정혜원} //클래스에 저장된 객체들은 딕셔너리 형태로 보여진다. 클래스는 직접 불러 오지 못하므로 변수로 선언해서 변수를 불러와야 한다.
class myFamily { constructor(name , age){ this.name = name(상태1); this.age = age(상태2); } // 매개변수를 다중 매개변수로 넣어주고 상태()를 추가해주면 됨 showName(){ console.log(this.name,this.age); //실행할 함수에도 상태2에 대한걸 끌어오면 됨 } } --- 클래스에 객체 저장하고 불러오기 let Fmly = new myFamily("정혜원",25) Fmly ->{name : 정혜원 , age : 25}
- ... 을 사용하여 벗김
let arr = [1,2,3,4,5] let arr2 = ["일","이"] let arr3 = [...arr,...arr2] arr3 : [1,2,3,4,5,"일","이"]
- let a = 조건식 ? 참 반환값 : 거짓 반환값
let cds = is===5 ? 3:4; // is===5 -> 조건부 참일경우 3 거짓일경우 4 // ' ? '를 기준으로 앞쪽은 조건부 뒤쪽은 반환되는 값. ' : '을 기준으로 앞쪽은 참일때 뒤쪽은 거짓일때 반환되는 값.
- let b = a.map((a 배열의 요소) => { ... })
map 괄호 안에는 화살표 함수가 쓰임이런식으로 배열안의 요소에 무언갈 가공하고싶을때 사용let arr = ["고양이","강아지","고릴라"] ---> 배열의 요소에 "검은"을 추가 가공하고싶다. let newArr = arr.map((arr_item) => { return "검은 "+arr_item //arr_item 은 arr의 요소를 가리킴 }) --->배열을 반환해보자 newArr ["검은 고양이","검은 강아지","검은 고릴라"] arr ["고양이","강아지","고릴라"] // 원본배열을 유지하고 새로운 배열을 생성시킴
- let b = a.filter((a배열의 요소) => { ... })
let arr = ["검은 고양이","강아지","고릴라","하얀 고양이", "조랑말","치즈 고양이"] ---> "고양이" 단어를 포함한 요소들만 따로 뽑아 모아두고싶어 let newArr = arr.filter((arr_item) => { let Cat = arr_item.indexOf("고양이"); if(Cat != -1){ return Cat} //arr_item 은 arr의 요소를 가리킴 }) --->배열을 반환해보자 newArr ["검은 고양이","하얀 고양이","치즈 고양이"] arr ["검은 고양이","강아지","고릴라","하얀 고양이", "조랑말","치즈 고양이"] // 원본배열을 유지하고 새로운 배열을 생성시킴
- let concatArr = arr.concat(arr2)
- conacatArr은 두 배열을 합친 배열
- arr은 합칠때 기준이 되는 배열
- arr2는 arr과 합쳐질 배열
- concat은 중복요소 제거하는 기능은 없음