Javascript란?
- 브라우저가 알아들을 수 있는 프로그래밍 언어
<script>
function 함수명 () {
alert ('안녕!'); //안내창을 뜨게 하는 명령어
}
</script>
버튼 클릭 시 나오게 하고 싶다면
<button onclick = "함수명()">내용</button>
화면에 미리 찍어보기
(브라우저의 검사 - 콘솔에서 확인 가능)
<script>
function 함수명() {
console.log(내용)
}
</script>
<script>
// 고정될 값이라면 const, 변하는 값이라면 let
let a = 2
a = 'bob'
</script>
<script>
let a = 2
let b = 3
console.log(a+b) // 5
</script>
<script>
let c = '대한'
let d = '민국'
console.log(c+d) // 대한민국
</script>
<script>
let a_list = []
// or
let a = ['하나', '둘', '셋', '넷']
</script>
<script>
console.log(a[1]) // 둘
console.log(a[0]) // 하나
console.log(a.length) // 4 : 리스트 길이 구하기
</script>
<script>
let a_dict = {}
// or
let a = {'name' : '하이', 'age' : 25}
</script>
<script>
console.log(a)
console.log(a['name']) // 하이
console.log(a['age']) // 25
</script>
<script>
let a = [
{'name' : '두준', 'age' : 33},
{'name' : '요섭', 'age' : 32},
{'name' : '기광', 'age' : 32},
{'name' : '동운', 'age' : 31},
]
console.log(a[0]['name']) // 두준
console.log(a[1]['age']) // 32
</script>
- 정보가 많아지면 알아보기 힘드므로 딕셔너리를 활용해 정보를 필요한 묶음으로 표현 가능
- 위의 묶음에 순서를 나타내기 위해 리스트를 사용하면 보기 편함
→ 보기에도 깔끔하고, 다루기 쉽고, 추가되는 데이터도 간단하게 대응 가능
나눗셈의 나머지
<script> let a = 10 let b = 7 a % b = 3 </script>
특정 문자로 문자열 나누기
<script> let email = 'high@light.com' let result = email.split('@') // ['high', 'light.com'] result[0] // high result[1] // light.com let result2 = result[1].split('.') // ['light', 'com'] result2[0] // light result2[1] // com email.split('@')[1].split('.')[0] // light → 로 간단하게 가능 </script>
JQuery
- 움직이게 만들기 위해 웹을 조작하기 위해 사용
- Javascript만 사용하면 복잡하니 jQuery도 함께 사용하는 것
HTML의 요소들을 조작하는 편리한 Javascript를 미리 작성해둔 라이브러리
- Javascript만 사용하기에는 코드가 복잡하고 브라우저 사이의 호환성 문제도 있어 jQuery 라이브러리가 등장하게 됨
Javascript.ver document.getElementById("element").style.display = "none";
jQuery.ver $("#element").hide();
jQuery 사용하기
jQuery CDN 부분을 참고하여 임포트 함
<head> <script src = "jQuery CDN"></script> </head>
- jQuery를 사용할 때에도 CSS 처럼 마찬가지로 지정해 주어야 함
- jQuery에서는 id 값을 통해 특정 버튼 / 인풋박스 / div 등을 지정함
text 값 바꾸기
<script> function checkResult() { let a = "하이" $('#d1').text(a) } </script> <head> <div id = "d1">Test</div> </head>
- $("아이디값") 으로 html 태그 지정해주기
- 지정한 다음, 바꿔줄 명령어 적기 (text(a)로 글자 값으로 a 지정)
리스트 사용
<script> let a = ['두준', '요섭', '기광', '동운'] // 리스트 두 번째 값으로 바꿔 넣으려면? $('#d1').text(a[1]) </script>
딕셔너리 사용
<script> let b = { 'name' : '두준', 'age' : 33 } // d2 아이디 값에 딕셔너리의 키 값(이름)으로 바꾸기 $("#d2").text(b['name']) </script>
리스트 & 딕셔너리 사용
<script> let c = [ {'name':'두준', 'age' : 33}, {'name':'요섭', 'age' : 32}, {'name':'기광', 'age' : 32}, {'name':'동운', 'age' : 31} ] // d3 아이디 값에 리스트에서 원하는 딕셔너리의 키 값 넣기 $("#d3").text(c[3]['age']) </script>
반복문
<script> let members = ['두준', '요섭', '기광', '동운'] members.forEach((a) => { console.log(a) }) // members의 각 요소를 보되, 이름은 a로 지정 (이름 상관없음) </script>
조건문
<script> // 20살 이상이면 성인, 이하면 청소년 let age = 21 if (age > 20) { console.log("성인") } else { console.log("청소년") } </script>
반복문 + 조건문
<script> let ages = [33, 19, 32, 16, 32, 31, 18] ages.forEach((a) => { if (a > 20) { console.log("성인") } else { console.log("청소년") } }) </script>
checkResult() 함수 안에 적어보기
<script> function checkResult() { $("#d1").empty() // 맨 처음에 있던 요소는 지워주기 let members = ['두준', '요섭', '기광', '동운'] members.forEach((a) => { let temp_html = `<p>${a}</p>` $("#d1').append(temp_html) }) } </script>
서버 → 클라이언트: "JSON" 이해하기
- JSON: Key : Value로 이루어짐 (딕셔너리 자료형과 매우 유사)
클라이언트 → 서버: GET 요청 이해하기
- 클라이언트가 요청 할 때도, "타입" 이 존재
- GET → 데이터 조회(Read) 요청 시
- POST → 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 시
"https://movie.daum.net/moviedb/main?movieId=161806"
위 링크는 "?" 로 쪼개지게 됨
"?"를 기준으로 앞은 <서버주소>, 뒷 부분이 [영화 번호]
- GET 방식으로 데이터를 전달하는 방법
?: 여기서부터 전달할 데이터가 작성됨
&: 전달할 데이터가 더 있음
Fetch 기본 골격
<script> // 이 URL로 웹 통신 요청. 괄호 안에 다른 내용이 없다면 GET fetch("여기에 URL") // 통신 요청을 받은 데이터는 res라는 이름으로 JSON화 함 .then(res => res.json()) // JSON 형태로 바뀐 데이터를 data라는 이름으로 붙여 사용 .then(data => { let rows = data['key값']['key값'] rows.forEach((a) = > { // 개발자 도구에 찍어보기 console.log(a['key값'],a['key값']) }) }) </script>
- GET 요청은 url 뒤에 붙여 데이터를 가져감
- POST 요청은, data : {} 에 넣어 데이터를 가져감
성공하면, response 값에 서버의 결과 값을 담아 함수 실행
<script>
function fun1() {
fetch("여기에 URL").then(res => res.json()).then(data => {
$("#id값").empty()
let rows = data['key값']['key값']
rows.forEach((a) = > {
let 변수1 = a['key값1']
let 변수2 = a['key값2']
let temp_html = `<li>${변수1} : ${변수2}</li>`
$(#"id값").append(temp_html)
})
})
}
</script>
변수 값에 따라(ex.변수2 > 30) 글씨 색을 다르게 주고 싶다면?
<style>
.fontc {
color: 색상명;
}
</style>
<script>
function fun1() {
fetch("여기에 URL").then(res => res.json()).then(data => {
$("#id값").empty()
let rows = data['key값']['key값']
rows.forEach((a) = > {
let 변수1 = a['key값1']
let 변수2 = a['key값2']
let temp_html = ``
if (변수 2 > 30) {
temp_html = `<li class='fontc'>${변수1} : ${변수2}</li>`
} else {
temp_html = `<li>${변수1} : ${변수2}</li>`
}
$(#"id값").append(temp_html)
})
})
}
</script>