JavaScript Array,내장객체
2018-12-12 00:00:00 +0000Array 객체
- slice : Array 객체의 지정한 위치에서 발췌하여 새로운 배열변수를 만듬
- splice : 특정요소를 삽입하거나 제거
- 배열 선언 3가지 방법
var arr = [];
arr[0] = 1;
arr[1] = 2;
var arr2 = new Array(2);
arr2[0] = 1;
arr2[1] = 2;
var arr3 = new Array(1,2);
문자열 함수
- arr.toString() : 배열의 요소를 출력(각 요소마다 ,콤마로 나뉘어져 있다)
document.write(arr1.toString());
- arr.join(콤마대신 사용할 요소) : 콤마 대신 사용할 요소가 찍힌다. 예를들어 콤마를 없애고 싶다면 “ “를 넣어준다
document.write(arr.join(" "));
- slice(startIndex, endIndex) : 시작 인덱스부터 끝 인덱스 앞 인덱스 까지 단어를 자른다
var arr = [];
for(var i = 0; i < 10; ++i){
arr[i] = i;
}
var arr2 = arr.slice(1,3);
document.write(arr.toString()+"<br>");
document.write(arr2.toString()+"<br>");
- concat : 문자열 붙이기
var arr = new Array(1,2,3);
var arr2 = new Array(4,5,6);
document.write(arr2.concat(arr));
setTimeout
- setTimeout(“함수이름”, ms);
- 첫번째 인수인 함수를 일정 시간 후에 한번 호출한다
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
var timeid;
var flag = 0; // 0이면 안돔 1이면 도는 중
function show(){
var now = new Date();
var hour = now.getHours();
var minute = now.getMinutes();
var seconds = now.getSeconds();
var timeValue = hour + "시" + minute + "분" + seconds + "초";
document.fmt.display.value = timeValue;
timeid = setTimeout("show()",1000);
}
function startClock(){
if(0 != flag)
return;
flag = 1;
show();
console.log("startClock timeid:"+timeid);
}
function stopClock(){
if(1 != flag)
return;
flag = 0;
console.log("end timeid:"+timeid);
clearTimeout(timeid);
}
</script>
</head>
<body>
<form name="fmt">
<input type="text" name="display">
<input type="button" name="start" value="시작" onclick="startClock()">
<input type="button" name="stop" value="종료" onclick="stopClock()">
</form>
</body>
</html>
JavaScript var
2018-12-11 00:00:00 +0000자료형
- 자바스크립트의 자료형은 var이고 정수형, 문자형 등.. 다양한 값을 넣을 수 있다
var intNum = 10;
var floatNum = 3.14;
console.log(typeof intNum);
console.log(typeof floatNum);
//문자형(string)
var singS = 'single';
var doubleS = "double";
console.log(typeof singS);
console.log(typeof doubleS);
// 논리형(boolean)
var boolVal = true;
console.log(typeof boolVar);
undefined과 null
- undefined : 변수를 선언하고 값을 할당하지 않음(자료형이 결정되지 않은 상태)
- null : 값이 없다는 뜻. 하지만 값이 할당되지 않은 undefined와는 다르다(null이라는 값이 할당된 것)
- null이라는 뜻은 문자형의 ‘’, 숫자의 0과 또 다른 뜻
- === 기호는 값과 데이터형까지 동일한지 체크하는 연산자
var temp2;
if(null===temp2){
console.log("temp2;는 null이다");
}else{
console.log("temp2;는 null이 아니다"+temp2);
}
temp2='';
if(null === temp2){
console.log("temp2=''는 null이다");
}else{
console.log("temp2=''는 null이 아니다"+temp2);
}
temp2=null;
if(null === temp2){
console.log("temp2=null는 null이다");
}else{
console.log("temp2=null는 null이 아니다"+temp2);
}
- 결과
temp2;는 null이 아니다undefined
temp2=''는 null이 아니다
temp2=null는 null이다
- 변수에 함수도 넣을 수 있다
- 변수에 함수를 넣으면 function 타입이 된다
// function
var func = function(){}
console.log(typeof func);
문자열 변환
- 문자열을 넣었던 변수에 숫자를 넣는 것도 가능하다
// 데이터형 num->string으로 변한다
intNum = "안녕";
console.log(typeof intNum);
- 문자+숫자 = 문자
// 형변환 문자+숫자=문자
var num = "15";
num2 = num+10;
console.log(num2);
- eval함수 사용 시 숫자로 변환할 수 없는 값을 변환하려고 하면 에러가 난다
- parseInt함수는 자신이 숫자로 변환할 수 있는 값만 변환한다
// 숫자=>문자 변환
var num = "15";
num = eval(num);
num2 = num+10;
console.log(num2);
//eval 변경하지 못하면 에러난다
/*var num = "15안녕";
num = eval(num);
num2 = num+10;
console.log(num2);*/
//parseInt는 자기가 변경할 수 있는 부분만 변경한다
var num = "15안녕";
num = parseInt(num);
num2 = num+10;
console.log(num2);
JavaScript 객체,생성자
2018-12-11 00:00:00 +0000객체
- object를 의미함
- key와 value로 이루어져있음(배열과 유사)
// 객체 생성
var student = {
id: 100,
name: '홍길동',
grade: '90'
};
// 객체가 가진 id값 확인
console.log(student.id);
- 객체는 동적으로 속성 추가와 제거 가능
- 변수, 함수를 선언하고 값을 넣어주면 된다
// 객체 생성
var student = {
id: 100,
name: '홍길동',
grade: '90'
};
student.age = 16;
student.getAge = function(){
return this.age;
}
console.log(student);
console.log(student.getAge());
객체의 복사
- 객체1=객체2 처럼 객체2가 가진 주소를 객체 1도 가리키게 되었을 때 얕은복사를 했다고 말함(값이 아닌 주소값 복제)
- 깊은 복사는 객체1, 객체2가 가진 주소가 별개여야 함(옳은방향)
- for문, 펼침연산 등으로 깊은 복사를 할 수 있다
prototype
- 생성자 함수로 생성된 객체가 공통으로 가지는 공간
- 예를들어 Student란 객체가 3개의 속성과 1개의 함수를 가지고 있다
- Student 객체가 1000개 만들어진다면 1개의 함수를 1000개 만들게 된다
- 메모리낭비가 심하므로 prototype으로 1개의 함수만 만들고 모든 객체가 참고하게 할 수 있다
Student.prototype.getSum = function(){};
Student.prototype.getAverage = function(){};
Student.prototype.toString = function(){};
생성자
- new functionname(인자)
- new를 사용하여 생성자를 만들 수 있다
- 생성자 함수를 사용하면 프로토타입을 사용할 수 있어서 메모리공간을 아낄 수 있다
- new를 생성하지 않으면 그냥 함수이다. 이 때 함수 내부에서 this 사용 시 Window 객체를 의미하는 것이다
function Student(name,korean,math,english){
this.name = name;
this.korean = korean;
this.math = math;
this.english = english;
}
var std = new Student('하나나',90,80,10);
JavaScript 함수,클로저
2018-12-11 00:00:00 +0000사용자 정의 함수
- 프로그램 내에서 사용자가 직접 정의한 기능함수
- 함수를 변수에 넣을 수 있다
function add(a, b){ // 선언적 함수
var sum = a+b;
return sum;
}
console.log("add:"+add(1,2));
익명함수
- 익명함수는 함수의 이름이 없는 함수. 변수에 넣어서 사용
- 익명함수를 만들기 전에 변수를 호출하면 에러(아직 함수 생성전이므로.. 익명함수는 순서중요! 선언적 함수는 순서x)
var add2 = function(a, b){ // 익명 함수
var sum = a+b;
return sum;
}
console.log("add2:"+add2(10,20));
함수 호출 범위
- 전역, 지역에 같은 이름의 변수가 있을 경우, 지역변수를 우선으로 호출한다
- 전역변수를 호출하고 싶다면 변수 앞에 this.를 붙인다
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
var myVar = "전역변수";
function myFunc(){
var myVar = "지역변수";
document.write("지역변수:"+myVar);
document.write("전역변수:"+this.myVar);
}
myFunc();
</script>
</head>
<body>
</body>
</html>
콜백함수
- 매개변수로 전달하는 함수는 콜백함수
//함수를 선언합니다
function callTenTimes(callback){
// 매개변수로 전달된 함수를 호출합니다
for(var i = 0; i < 10; ++i)
callback();
}
// 변수를 선언합니다
var callback = function(){
alert('함수 호출');
};
// 함수를 호출합니다
callTenTimes(callback);
클로저(closure)
- 함수가 종료된 후에도 함수내에 있던 지역변수를 사용하고 싶을 때 활용
- 아래 예제에서 지역변수 add가 num을 계속 사용하고 있으므로 num 변수는 메모리에서 사라지지 않는다
function funcAdd(){
var num = 100;
function add(addNum){
console.log(addNum+num);
}
return add;
}
funcAdd()(4);
내장함수
- setTimeout : 일정 시간 후 함수를 한번 실행
- setInterval : 일정 시간마다 함수를 반복해서 실행
- encodeURIComponent : 문자 대부분을 모두 인코딩
JavaScript Event
2018-12-11 00:00:00 +0000Javascript
- Java와 문맥이 비슷한 프로그래밍 언어
- Javascript는 html과 함께 클라이언트로 다운로드하여 실행할 수 있음
- 인터프리터 언어
- HTML과 같이 플랫폼 독립성
- HEAD, BODY 어디서든 선언 가능
문법
- null과 undefined
- undefined는 아예 값이 할당되지 않은 상태. null은 값이 없다는 의미
- parseInt : 문자열을 숫자로 변환함
주석
- 자바와 똑같이 //, /**/을 주석으로 사용한다
/* 주석1 */
// 주석2
이벤트
- 유저가 어떤 동작을 하면 웹이 상호작용하여 이벤트가 호출된다
- 아래 예제에선 유저가 버튼 클릭을 하면 (onclick) kosta3 함수가 호출되는 것이다
- common.js
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type='text/javascript' src='common.js'></script>
</script>
</head>
<body>
<form>
<input type ="button" value = "버튼" onclick="kosta3()">
</form>
</body>
</html>
- 알림창, 문서출력, 콘솔창 출력
function kosta3(){
// 알람 함수
alert('kosta3');
// 문서에 출력
document.write('<b>KOSTA3</b>');
// 콘솔창에 출력
console.log('kosta3');
}
Posts
-
Interceptor(인터셉터)
-
Android Studio Install
-
계층형 게시판
-
VirtualBox Ubuntu 18.04.2 LTS
-
TransactionAwareDataSourceProxy Error
-
Java Coding Conventions
-
Java Long과 long의 차이
-
Mybatis 객체 안에 객체 매핑
-
JavaConfig mariadb 연결
-
DataTable
-
관리자 페이지
-
MappingJackson2JsonView
-
Spring Javaconfig
-
게시판 만들기-제품 등록
-
게시판 만들기-제품 페이지 제작
-
게시판 만들기-회원탈퇴 및 게시판 삭제 플래그 추가
-
footer 하단에 고정시키기
-
bootstrap4 사용법
-
Spring 데이터 검증 @Valid, BindingResult
-
brackets 실시간 미리보기
-
Spring 기본설정(pom.xml, web.xml, encoding)
-
Vue.js computed, methods, watch
-
javascript onkeyup
-
Maria DB Incorrect string value Error
-
javascript 암호화(md5, base64)
-
Vue.js template
-
Vue.js 소개
-
Nexacro 설명
-
ControllerAdvice
-
Batch
-
html 페이지 로딩 순서
-
소수구하기(PrimeNumber)
-
최소공배수,최대공약수
-
Stream
-
Lambda(람다식)
-
inner class(내부 클래스)
-
final 키워드
-
file upload
-
파이썬 빅 데이터 K-평균(K-means)
-
아나콘다(Anaconda), 주피터 개발환경 세팅
-
텐서플로우(TensorFlow) 아키텍쳐 및 Session
-
텐서플로우(TensorFlow)상수, 변수, 함수
-
머신러닝 기초
-
한글 리스트 오름차순, 내림차순
-
연속된 글자의 갯수 출력
-
java spring5 프로젝트 설정
-
restController
-
spring 세팅 및 기본설정
-
mybatis trim
-
jquery datepicker
-
ajax로 데이터 전달/응답 받는법
-
mybatis error
-
mybatis 게시판 만들기 순서
-
Java Jsp Mybatis Dynamic Query
-
mybatis
-
git 소개
-
node.js 개발환경 구축
-
node.js 기본 내장 모듈
-
node.js의 전역 객체
-
node.js http module
-
node.js event
-
jdbc
-
자바빈
-
jsp, servlet 정리
-
java null object pattern
-
다음지도 key 등록(kakao map)
-
공공 데이터 open api
-
facebook login api
-
sourcetree 사용법
-
JavaScript event3
-
JavaScript jquery
-
JavaScript dom
-
JavaScript ajax
-
JavaScript 이벤트2
-
JavaScript 캡슐화
-
JavaScript Array,내장객체
-
JavaScript var
-
JavaScript 객체,생성자
-
JavaScript 함수,클로저
-
JavaScript Event
-
javascript eclipse 자동완성(with tern)
-
CSS position
-
HTML5,CSS 선택자
-
자바 시간 측정
-
git,eclipse 연동
-
HTML 기초 정리
-
Eclipse Web 환경세팅
-
피보나치의 수
-
Oracle 반복문,커서,예외,저장 서브프로그램
-
Oracle PL/SQL
-
Oracle 다중쿼리(Multiple row query)
-
Oracle 인덱스, 뷰, 시퀀스, 트랜잭션, 세션 정리
-
Oracle JOIN 정리
-
Oracle DDL, DML 정리
-
Oracle 문자열 함수 정리
-
Oracle 숫자,날짜,자료형 변환 함수 정리
-
Oracle 제약조건 정리
-
Oracle 기초 쿼리 정리
-
문제2775
-
DFS
-
junit
-
json
-
algorithmus basic
-
circular queue(원형큐)
-
binary search(이진탐색)
-
port forwarding(포트포워딩)
-
kakao chatbot(카카오 챗봇)
-
java io
-
sort comparable, comparator
-
Unresolved compilation problem
-
ArrayList, HashMap
-
Regular(정규표현식)
-
Enum Class
-
String Function
-
refactoring 이란(상수,제어플래그,assert)
-
reference,abstract 정리
-
FileNotFoundException Solve
-
static
-
Thread Synchronization(스레드동기화,원자성)
-
Java Exception(예외처리)
-
Java 생성자, this, super
-
roomnum
-
BeeHouse
-
Git Reset, Revert
-
Git Log
-
Array
-
stack
-
pyramid draw
-
Star Draw(별 그리기4)
-
Star Draw(별 그리기3)
-
Star Draw(별 그리기2)
-
Star Draw(별 그리기1)
-
Loop(While, For)
-
자바 데이터 타입, 데이터 연산
-
시계방향 달팽이 그리기
-
정수값의 짝수,홀수 갯수 구하기
-
java, Scanner 정리
-
draw dog
subscribe via RSS