<script>
로 묶어 작성할 수도 있다<scirpt src="파일경로">
별개의 .js 파일에 작성하여 연결시킬 수 있다.// document.write('안녕');
여러 줄일 경우 /* document.write('안녕'); document.write('하세요'); */
로 묶어주면 된다.var
로 선언할 수 있고 ES6에서는 let
과 const
로 선언도 가능하다type of 데이터
를 이용해 데이터의 타입을 알 수 있다.Math.random()
함수로 임의의 숫자 출력할 수 있지만 0이상 1미안의 실수형 숫자가 나온다.Math.random() * 45
와 같이 45를 곱해준다면 0이상 45 미안의의 숫자가 나오게 된다.Math.random() * 45 +1
1을 더해주어 1이상 46 미안의 숫자를 출력하자.pareInt(Math.random() * 45 +1)
함수를 사용해 정수형으로 출력하자.var lotto = [1, 2, 3, 4, 5, 6]
일때 3이라는 값은 lotto[2]이다.
lotto.push(7)
. push()
메소드를 이용해 추가할수 있다.let lotto = []
안에 추가하려면 lotto.push(pareInt(Math.random() * 45 +1))
를 6번 반복해야하지만 "DRY(Don't Reapeat Yourself)" for 반복문을 이용해 해결 할 수 있다.for(시작; 끝; 증감식) { 반복하려는 코드 }
이다.if (조건) { 조건이 참일 때 실행될 코드 }
.indexOf(배열의 값)
을 이용해 찾을수 있다..indexOf(배열의 값)
의 값이 -1일 경우에만 lotto.push()
하자<script>
var lotto = [];
for (var i = 0; i < 6; i++){
var num = parseInt(Math.random() * 45 + 1);
if (lotto.indexOf(num) == -1) {
lotto.push(num);
}
}
}
document.write(lotto);
</script>
while (조건) { 반복하려는 코드 }
배열.length
를 이용하면된다.while (lotto.length < 6) { 중간 결과 }
로 조건을 걸어주자sort()
메소드를 이용하면 배열의 값을 정렬시킬 수 있다.[1, 2, 3, 33, 22, 11]
일떄 sort()
메소드를 사용한다면 사전순으로 정렬되기 때문에 [1, 11, 2, 22, 3, 33]
사전순으로 정렬되는데 이를 해결하기 위해서는 .sort((a, b) => a - b)
이와같이 정렬해서 오름차순으로 정렬할 수 있다. 내림차순은 .sort((a, b) => b - a)
이다.<script>
var lotto = [];
while (lotto.length < 6) {
var num = parseInt(Math.random() * 45 + 1);
if (lotto.indexOf(num) == -1) {
lotto.push(num);
}
}
lotto.sort((a,b)=>a-b);
document.write(lotto);
</script>
DOM이란? Document Object Model의 약자로 웹화면을 구성하는 html에 쉽게 접근할 수 있는 모델이다.
이를 이용해 자바스크립트를 통해 화면을 구성하는 코드를 원하는데로 변경할 수 있다.
예를 들어 html에서 <h1 id="title">
일때 document.getElementById('title')
를 이용해 불러올 수 있다. 이때 document.getElementById('title').innerHtml
을 이용해 태그 안에 텍스트만 불러올 수도 있다.
중간결과
<textarea class="form-control" rows="3" id="jasoseol">저는 인성 문제가 없습니다.</textarea>
<span id="count">(0/200)</span>
<script>
var content = document.getElementById('jasoseol').value;
document.getElementById('count').innerHTML = '(' + content.length + '/200)';
</script>
<textarea 이벤트=이벤트 핸들링>
<textarea onkeydown="conter()" class="form-control" rows="3" id="jasoseol">저는 인성 문제가 없습니다.</textarea>
<span id="count">(0/200)</span>
function counter() {
var content = document.getElementById('jasoseol').value;
document.getElementById('count').innerHTML = '(' + content.length + '/200)';
};
counter();
.substring(0이상 ,200미만)
메소드를 이용해서 200글자 이상의 글씨는 잘라낼 수 있다.
최종결과
<textarea class="form-control" rows="3" id="jasoseol" onkeydown="counter();">저는 인성 문제가 없습니다.</textarea>
<span id="count">(0/200)</span>
<script>
function counter() {
var content = document.getElementById('jasoseol').value;
if (content.length > 200) {
content = content.substring(0,200);
document.getElementById('jasoseol').value = content;
}
document.getElementById('count').innerHTML = '(' + content.length + '/200)';
}
counter();
</script>
<script src="https://code.jquery.com/jquery-3.7.0.min.js" integrity="sha256-2Pmvv0kuTBOenSvLm6bvfBSSHrUJ+3A7x6P5Ebd07/g=" crossorigin="anonymous"></script>
을 이용$(선택자).행위
function hello() { console.log("hello"); }
$("#click").click(function() { console.log("hello"); })
$('#drone').click(function(){
$('#spit').fadeIn();
$('#spit').animate({left: '+=250'});
});
$('#drone').click(function(){
$('#spit').fadeIn();
$('#spit').animate({left: '+=250'});
$('#spit').fadeOut();
});
이때 두번째 클릭을 하게되면 침이 사라진 위치 즉 (250위치) 사라진 위치에서 시작을 한다.
다시 드론 앞으로 원상복귀 시키기 위해서는 .css(변경할 css)
메소드를 이용해 다시 원래 위치로 변경하자
$('#spit').css(left: "150px");
var hp = 3;
.text()
메소드를 이용해 텍스트 변경하기 <script>
var hp = 3;
$('#drone').click(function(){
$('#spit').fadeIn();
$('#spit').animate({left: '+=250'});
$('#spit').fadeOut();
$('#spit').css(left: '150px');
hp = hp - 1;
$('#hp').text('HP :' + hp);
});
</script>
fadeOut([duration [, complete])
complete이 끝난 이후에 실행되게 만들자. <script>
var hp = 3;
$('#drone').click(function(){
$('#spit').fadeIn();
$('#spit').animate({left: '+=250'});
$('#spit').fadeOut(function(){
hp = hp - 1;
$('#hp').text('HP :' + hp);
});
$('#spit').css({left: '150px'});
});
</script>
<script>
var hp = 3;
$('#drone').click(function(){
$('#spit').fadeIn();
$('#spit').animate({left: '+=250'});
$('#spit').fadeOut(function(){
hp = hp - 1;
$('#hp').text('HP: ' + hp);
if(hp == 0) {
$('#bunker').fadeOut();
}
});
$('#spit').css({left: '150px'});
});
</script>
객체(Object)
key: value
value에는 배열, 객체, 함수도 가능하다.person.name
로 불러온다.person.sayHello()
let person = {
name: "홍길동",
age: 20,
hobby: ["축구", "농구"],
money: {stock: 10, cash: 1},
sayHello: function() {console.log("hello")}
}
Date 객체
내장 객체: 미리 특정 기능을 가지고 있는 자바스크립트의 객체
//1. Date 객체 생성
var now = new Date();
//2. 연도를 가져오는 메서드 .getFullYear()
console.log(now.getFullYear());
//3. 월 정보를 가져오는 메서드 .getMonth() {0: 1월, 1: 2월, ... 10: 11월, 11: 12월}
console.log(now.getMonth());
//4. 일 정보를 가져오는 메서드 .getDate()
console.log(now.getDate());
//5. 1970년 1월 1일 00:00:00을 기준으로 흐른 시간을 밀리초로 표시하는 메서드 .getTime()
console.log(now.getTime());
//6. 특정 일의 Date 객체 생성
var christmas = new Date('2020-12-25');
console.log(christmas);
//7. 특정 ms의 Date 객체 생성
var ms = new Date(1000);
console.log(ms);
// 오늘 날짜
var now = new Date();
// 사귄 날짜
var start = new Date('2023-01-01');
// 오늘 날짜에서 사귄 날짜를 빼기
var timeDiff = now.getTime() - start.getTime();
// ms 단위로 나오기 때문에 1일로 계산하기 위한 계산
var day = Math.floor(timeDiff / (1000 * 60 * 60 * 24) + 1);
console.log(day);
var now = new Date();
var start = new Date('2023-01-01');
var valentine = new Date('2024-02-14');
var timeDiff2 = valentine.getTime() - now.getTime();
var day2 = Math.floor(timeDiff2 / (1000 * 60 * 60 * 24) + 1);
var now = new Date();
var start = new Date('2023-01-01');
// 1000일에 해당하는 ms 만들기
var ms = start.getTime() + 999 * (1000 * 60 * 60 * 24);
var thousand = new Date(ms);
var thousandDate = thousand.getFullYear() + '.' + (thousand.getMonth()+1) + '.' + thousand.getDate();
var now = new Date();
var start = new Date('2023-01-01');
var timeDiff3 = thousand.getTime() - now.getTime();
var day3 = Math.floor(timeDiff3 / (1000 * 60 * 60 * 24) + 1);
다양한 sns 링크들을 추가할 수 있다: addtihs
애드 네트워크: kakao Addfit
네이버 웹마스터 및 구글 서치 콘솔도구에 사이트 등록
검색 관련 문서 제출
rotots.txt
에 크롤링이 가능한지 확인하고 정보를 가져온다sitemap.xml
을 이용해 크롤러가 사이트를 잘 탐색할 수 있도록 도와준다.검색엔진 최적화
1. 내부 요소 최적화(HTML, 컨텐츠, meata 태그 등)
2. 외부 요소 최적화(백링크 개수 등)