여러가지 함수들...
배열
// *** var 키워드 없이 선언한 변수 > 모두 전역변수이다.
var num4 = 400; // 전역 변수
num5 = 500; // 전역 변수
// 쓰면 안되는 코드
function m2() {
var num6 = 600; // 지역 변수
num7 = 700; // 지역 변수(x) > 전역 변수(O)
}
var n1 = 3.99;
console.log(parseInt(n1)); // 실수 > 정수
var n2 = "300";
console.log(n2);
console.log(n2, typeof n2);
console.log(parseInt(n2), typeof parseInt(n2)); // 문자열 > 정수
// 맨 처음이 숫자라면, 다음 문자를 만날 때까지의 숫자만 잘라서 형변환을 해준다.
//NaN
// boolean isNaN(value)
// - value가 숫자가 아닙니까?
// 1. 네 > 숫자가 아님
// 2. 아니오 > 숫자임
// 사용자 나이 입력
var age = "20";
console.log(isNaN(age)); // false > 숫자임
if (isNaN(age)) {
console.log("나이가 올바르지 않습니다.");
} else {
console.log("올바른 나이~");
}
var txt = "Hello~ Hong~";
.length
console.log(txt.length); // 프로퍼티(Property)
.indexOf()
.lastIndexOf()
console.log(txt.indexOf("~")); // 5
console.log(txt.indexOf("~", 6)); // 11 시작위치를 6으로 지정
console.log(txt.lastIndexOf("~")); // 11
console.log(txt.lastIndexOf("~", 10)); // 5
.toUpperCase()
.toLowerCase()
console.log(txt.toUpperCase());
console.log(txt.toLowerCase());
.substring()
.substr()
.charAt()
.charCodeAt()
console.log(txt.substring(2, 8)); // llo~ H
console.log(txt.substring(2)); // llo~ Hong~
console.log(txt.substr(2, 4)); // llo~ 4는 글자 개수
console.log(txt.substr(2)); // llo~ Hong~
console.log(txt.charAt(2)); // 문자 추출
console.log(txt.charCodeAt(2)); // 문자 코드값 추출
.replace()
txt = "Hello~ Hong~ Bye~ Hong~";
console.log(txt.replace("Hong", "Lee"));
.trim()
.trimLeft()
.trimStart()
.trimRight()
.trimEnd()
txt = " 하나 둘 셋 ";
console.log("@" + txt.trim() + "@");
.split()
txt = "홍길동,아무개,하하하,호호호,후후후";
console.log(txt.split(","));
.startsWith()
.endsWith()
txt = "홍길동";
console.log(txt.startsWith("홍"));
console.log(txt.endsWith("동"));
.padStart()
.padEnd()
.repeat()
txt = "1";
console.log(txt.padStart(3, "0"));
console.log(txt.padEnd(3, "A"));
console.log(txt.repeat(3, txt));
자바스크립트는 클래스가 없다.
내장 객체라는 것을 제공 > 객체 생성
var now = new Date(); // new 생성자함수();
console.log(now);
console.log(now.toString());
console.log(typeof now); // object
// - c.get(Calendar.YEAR)
console.log(now.getYear()); //123
console.log(now.getFullYear()); //2023
console.log(now.getMonth()); //9(0부터)
console.log(now.getDate()); //5
console.log(now.getDay()); //4(일(0)~토(6))
console.log(now.getHours()); //10
console.log(now.getMinutes()); //19
console.log(now.getSeconds()); //30
console.log(now.getMilliseconds()); //0.316
console.log(now.getTime()); //1696468770316 틱(ms) 기준: 1970-01-01 00:00
console.log(now.toString());
console.log(now.toLocaleString()); //브라우저 설정에 따라 바뀜
console.log(now.toLocaleDateString()); //2023. 10. 5.
console.log(now.toLocaleTimeString()); //오전 10:22:32
var christmas = new Date(); //현재시간 만들기
//날짜/시간 수정하기
christmas.setFullYear(2023);
christmas.setMonth(11);
christmas.setDate(25);
christmas.setHours(12);
christmas.setMinutes(0);
christmas.setSeconds(0);
console.log(christmas.toLocaleString());
// var birthday = new Date(1995, 10, 9);
var birthday = new Date(1995, 10, 9, 12, 30, 0);
//시각 - 시각
//자바 - 틱값 구해서 뺸 뒤 계산
console.log(christmas - now); //SQL(일), JavaScript(ms)
console.log((christmas - now) / 1000 / 60 / 60 / 24); // 약 81일
console.log((now - birthday) / 1000 / 60 / 60 / 24); // 약 10191일
//시각 + 시간
//시각 - 시간
//오늘 만난 커플이 100일 기념일?
var ani = new Date();
ani.setTime(now.getTime() + 100 * 24 * 60 * 60 * 1000);
console.log(ani.toLocaleString());
var nums = new Array();
nums[0] = 100;
nums[1] = 200;
nums[2] = 300;
// 초기화 리스트
var nums3 = [100, 200, 300]; //*** 주로 사용
// 빈 배열
var nums5 = []; //*** 가장 많이 사용하는 방식
var list2 = [];
for (var i = 3; i <= 3 * 10; i += 3) {
list2.push(i); //stack.push(값), list.append(값) 과 같다
}
console.log(list2);
console.log(list2.pop()); // stack.pop(값)
console.log(list2);
CSS > 선택자(HTML 태그 검색) > 접근 > 조작
JavaScript > HTML 태그 검색 > 접근 > 조작
BOM/DOM > 태그 접근 > 계층 구조 접근
window, document - 유일
그 아래 - 유일하지 않음 -> 이름 꼭 필요하다.
<form name="form1">
<input type="text" name="txt1" />
<input
type="button"
value="버튼"
name="btn1"
onclick="window.document.form1.txt1.value = '홍길동';"
/>
<input type="button" value="버튼" name="btn2" onclick="m2();" />
<input type="button" value="버튼" name="btn3" />
</form>
<script>
function m2() {
window.document.form1.txt1.value = "아무개";
}
<script>
if (new Date().getSeconds() % 2 == 0) {
window.document.form1.btn3.onclick = m3;
}
// 동적
function m3() {
window.document.form1.txt1.value = "하하하";
}
1: 왼쪽
2: 오른쪽
3: 왼쪽 + 오른쪽
4: 가운데
5: 왼쪽 + 가운데
6: 오른쪽 + 가운데
7: 왼쪽 + 오른쪽 + 가운데
message(event.buttons);
if (event.buttons == 2) {
alert("우클릭 금지");
}
onclick > 마우스 이벤트가 아니다. > 마우스 관련 작업 금지
하나의 버튼 > On/Off > 토글 버튼(Toggle Button), 스위치
부모창의 window 객체!!
function m1() {
// 아이디를 부모 페이지에 옮겨 붙이기
opener.document.form2.txtid.value = txtid.value;
// 해당 자식 페이지 닫기
window.close();
}
window.close();
child.close();
var child;
child = window.open(
"ex16_child.html",
"child",
"width=500 height=300 left=0 top=0"
);
child.document.form1.cbtn1.value = "클릭";
//현재 보고 있는 화면의 크기 > 모니터 해상도
console.log(window.screen.availHeight); // 1040