수업용 블로그 : https://blog.naver.com/drv983
자바스크립트는 웹 브라우저에서 실행이 된다.
https://blog.naver.com/drv983/222752617638
자바스크립트는 <script> ~ </script>
사이에 작성하며, 보통 <body>
태그의 가장 아래쪽에 사용함
변수를 선언할때는 let 사용
https://blog.naver.com/drv983/222752619388
const로 만든 상수는 값을 변경할 수 없음.
https://blog.naver.com/drv983/222752620531
단, +
일때만 해당되고 나머지 -
, /
,*
는 문자열 과 계산시 숫자로 바뀌어서 계산됨
true / false
값이 없음.(값이 없다는 데이터가 들어있음)
아예 아무런 값도 넣은적이 없음.
https://blog.naver.com/drv983/222752630374
confirm(문자열질문?)
확인 : true 리턴
취소 : false 리턴
https://blog.naver.com/drv983/222752642651
문자->숫자, 숫자->문자
https://blog.naver.com/drv983/222752688950
++
, --
는 1씩 증가, 감소 시킨다.
https://blog.naver.com/drv983/222752799011
조건이 참이면 괄호 안의 코드 실행
if(조건){코드}
https://blog.naver.com/drv983/222753611099
객체는 {} 로 생성
예시
객체 내부의 데이터 호출하는법
객체명.키
객체 내부의 값 추가 및 변경
객체 내부에 객체 생성
객체의 객체의 키 접근
https://blog.naver.com/drv983/222754614627
DOM 트리 tree : https://blog.naver.com/drv983/222754801019
// 2. class 및 일반태그 선택시
const h1 = document.querySelector('h1');
// 클래스는 앞에 . 을 붙임
const second = document.querySelector('.second');
getAttribute (값을 받아오는것)
setAttribute (값을 바꾸는것)
https://blog.naver.com/drv983/222754814941
remove : 클래스 제거(효과 제거)
add : 클래스 추가(효과 적용)
toggle
textContent
onclick : 버튼을 클릭하면 "..." 내부의 자바스크립트가 실행이 된다.
<button onclick="h1.classList.toggle('cool')">클릭!</button>
https://blog.naver.com/drv983/222753078561
function 함수이름(매개변수){
실행코드
}
// 버튼을 클릭했을때 사용할 함수를 미리 만듦
function clickEvent(){
console.log('클릭했음!');
h1.classList.toggle('cool');
}
// style태그 내의 onclick에 함수를 넣어서 적용
<style>
<button onclick="clickEvent()">클릭!</button>
</style>
app.js
파일과 index.html
파일 연결 : <body>
태그 내에 <script src="app.js"></script>
넣기
<body>
<div class="container">
<h1>Refresh Me</h1>
<div class="dice">
<p>Player 1</p>
<img class="img1" src="images/dice6.png">
</div>
<div class="dice">
<p>Player 2</p>
<img class="img2" src="">
</div>
</div>
<script src="app.js"></script>
</body>
<img class="img1" src="images/dice6.png">
이용const img1 = document.querySelector('.img1');
const img2 = document.querySelector('.img2');
const h1 = document.querySelector('h1');
// 정수 1에서 6까지 랜덤숫자 만들기
// floor : 소수점은 버려준다.
let random1 = Math.floor(Math.random() * 6) + 1;
let random2 = Math.floor(Math.random() * 6) + 1;
console.log('랜덤1: ' + random1, '랜덤2: ' + random2)
img1.setAttribute('src', 'images/dice' + random1 + '.png');
img2.setAttribute('src', 'images/dice' + random2 + '.png');
// 누가 이겼는지 player1 player2 => if else 문으로
// const h1 = document.querySelector('h1');로 변수 설정 해줘야함
if(random1 > random2) {
h1.textContent = '🎲Player 1 wins!'
} else if(random1 == random2) {
h1.textContent = '🎲Draw!'
} else {
h1.textContent = '🎲Player 2 wins!'
}
onchange=""
<body id="gradient">
<h1>벡그라운드 생성기</h1>
<!-- <-- 뭔가 바뀌었을때 따옴표 안의 내용이 실행이 됨. -->
<input onchange="setColor()" class="color1" type="color" name="color1" value="#00ff00">
<input onchange="setColor()" class="color2" type="color" name="color2" value="#ff0000">
<h2>Current CSS Background</h2>
<h3></h3>
<script src="app.js"></script>
</body>
body {
font: 'Raleway', sans-serif;
color: rgba(0,0,0,.5);
text-align: center;
text-transform: uppercase;
letter-spacing: .5em;
top: 15%;
background: linear-gradient(to right, red , yellow); /* Standard syntax */
}
// 태그객체 선택(사용할 객체들)
const h3 = document.querySelector('h3');
const color1 = document.querySelector('.color1');
const color2 = document.querySelector('.color2');
const body = document.querySelector('body');
setColor()
함수 생성, 백틱
을 이용해 값 적용// 이벤트 색 입력창을 선택해 색을 바꿨을때 !
// background: linear-gradient(to right, red , yellow);
function setColor() {
body.style.background = `linear-gradient(to right, ${color1.value} , ${color2.value})`;
// 백그라운드에 실제 적용된 색을 표시한다.
h3.textContent = body.style.background;
}