1. Selector(선택기)

선택기를 통해 특정 HTML요소를 선택하거나 조작 가능

HTML요소의 id, class, 타입, 특성, 특성의 값 등을 기준으로 선택기 사용 가능.

 

선택기 실행은 $(요소) 형태로 사용

 

2. ID 선택기

css와 마찬가지로 '#' 을 통해 요소를 선택함

// W3School Exam
// 버튼 누르면 2번 <p> 의 내용이 사라짐. 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<p>1번 p 태그.</p>
<p id="test">2번 p태그</p>    
<p class="classtest">3번 p 태그.</p>
<button>Click me</button>

$(document).ready(function(){
  $("button").click(function(){
    $("#test").hide();   // " # id "
  });
});

 

 

버튼 클릭 전 -> 후

 

3. class 선택기

css와 마찬가지로 '.' 을 통해 선택

// W3School Exam
// 버튼 누르면 3번 <p> 의 내용이 사라짐. 

<p>1번 p 태그.</p>
<p id="test">2번 p태그</p>
<p class="classtest">3번 p 태그.</p>

<button>Click me</button>


$(document).ready(function(){
  $("button").click(function(){
    $(".classtest").hide();    //  " . Class Name "
  });
});
 

 

4. 기타 선택 방법

우선 자주 쓰일 것 같은 선택 방법

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>

// 클래스 다중 선택
$(document).ready(function(){
  $("#button1").click(function(){
    $(".classtest1, .classtest2").hide();
  });
});

// p 태그 모두 선택
$(document).ready(function(){
  $("#button2").click(function(){
    $("p").hide();
  });
});

// h1과 p태그 선택
$(document).ready(function(){
  $("#button3").click(function(){
    $("h1,p").hide();
  });
});

// 첫번째 p태그 선택
$(document).ready(function(){
  $("#button4").click(function(){
    $("p:first").hide();
  });
});

// 모든 요소 선택
$(document).ready(function(){
  $("#button5").click(function(){
    $("*").hide();
  });
});

// 모두 보여주기
$(document).ready(function(){
  $("#button6").click(function(){
    $("*").show();
  });
});

</script>
</head>
<body>

<h1>h1 태그</h1>

<p>1번 p 태그.</p>
<p id="test">2번 p태그</p>
<p class="classtest1"> p 다중클래스1.</p>
<p class="classtest2"> p 다중클래스2.</p>


<button id="button1">다중 클래스</button>
<button id="button2">P태그 모두 숨기기</button>
<button id="button3">h1과 p모두 숨기기</button>
<button id="button4">첫 번째 p태그 숨기기</button>
<button id="button5">모든 요소 삭제</button>
<button id="button6">되돌리기</button>

</body>
</html>
 

 

 

'JAVASCRIPT > JQUERY' 카테고리의 다른 글

slide  (0) 2022.08.28
fadeIn - fadeOut  (0) 2022.08.28
hide - show  (0) 2022.08.28
Event  (0) 2022.08.28
Selector  (0) 2022.08.28

 

BOM(Browser Object Model)

:: 브라우저를 하나의 객체로 처리하여 브라우저 내의 기능을 제어.

 

- 히스토리(history) :: backward, forward, 현재 위치

페이지 현재 위치를 확인 : Location

이전 페이지 : window.history.back

다음 페이지 : window.history.forward

 

- 대화창 :: 경고창, 확인창, 입력창

경고창 : alert("출력할 문자열"); => 반환값이 없음.

확인창 : confirm("질문 문자열"); => 반환값이 있음. (반환값 : 확인 = T / 취소 = F)

입력창 : prompt("출력할 문자열"); => 반환값이 있음. (반환값 : 입력한 문자열)

 

 

- 타이밍 :: 간격설정, 간격삭제, 타이머

setInterval() - 특정 시간 간격으로 특정 함수를 실행.

clearInterval() - setInterval 삭제.

setTimeout() - 특정 시간 후에 특정 함수를 실행.

 

'JAVASCRIPT > JAVASCRIPT' 카테고리의 다른 글

자바 스크립트 객체  (0) 2022.08.28
자바스크립트 1  (0) 2022.08.28

 

자바 스크립트 객체

 

객체 = 변수 + 함수

객체 내부에 정의된 함수 : 메소드

 

객체 종류

1. 사용자 정의 객체 (개발자가 만드는 객체)

2. 내장 객체 : Object, Array(), Date() 등

Document Object Model, Browser Object Model

 

 

내장 객체 date()

날짜와 시간 정보를 취급하는 객체.

Date 객체를 생성해서 날짜 정보를 가져옴.

예제 - date_js.html

 

DOM() : Document Object Model

- 웹 문서를 메모리로 읽어 들여 트리 구조로 변환

- 문서의 각종 요소는 요소 노드로, 텍스트는 텍스트 노드로 변환

- 변환된 트리 구조를 이용하면 자바스크립트로 웹 문서를 조작할 수 있음.

 

'document.' 으로 시작

1. getElementById

: 태그에 부여한 id 속성 요소를 찾는 선택자.

 

2. getElementsByClassName()

: 태그에 부여한 class 속성 요소를 찾는 선택자.

 

3. getElementsByTagName()

: 태그명으로 요소를 찾는 선택자.

 

4. querySelector()

: CSS 선택자와 같은 방식으로 요소를 찾는 선택자.

예) document.querySelector( ' .ex ');

 

 

요소에 이벤트 추가

addEventListener('이벤트', 함수);

특정 액션(클릭, 키입력, 마우스오버 등)에 대한 처리를 요소에 추가하는 메소드.

 

이벤트에 들어갈 키워드

포커스 처리 : focusin, focusout

키 이벤트 : keydown, keyup

마우스 : click, dblclick (더블클릭), mouseenter(영역 in), mouseout(영역 out),

mouseover(영역 위), mousedown(클릭), mouseup(클릭 해제),

mousemove(움직임)

 

마우스 버튼별 처리 시 event.button

1: 왼쪽, 2: 오른쪽, 4: 가운데

 

예제 - addEventListener01.html,

addEventListener02.html

 

 

 

 

요소의 속성 변경

요소의 속성 값을 지정(변경) - setAttribute('속성', '값');

요소의 속성 값 읽어오기 - getAttribute(태그변수.속성);

요소의 속성 제거하기 - removeAttribute('속성');

 

요소의 동적 추가/삭제/변경

 

요소의 생성

- createElement('태그명');

요소의 추가

- appendChiled('생성한 요소');

요소의 삭제

- removeChild('자식 요소');

요소의 변경

- replaceChild('생성한 요소', '기존 요소)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'JAVASCRIPT > JAVASCRIPT' 카테고리의 다른 글

BOM(Browser Object Model)  (0) 2022.08.28
자바스크립트 1  (0) 2022.08.28

 

자바 스크립트

스크립트 타입의 언어.(기계어로 번역이 되지 않고 실행이 되는 시점에 라인 단위로 번역이 이루어져 실행되는 언어)

- 문법적으로 비교적 까다롭지 않음 (문법이 안 맞으면 HTML처럼 실행은 되지만 비정상적으로 실행됨)

 

1. 자바 스크립트의 역할

- 태그 요소(Element)의 추가 및 삭제

- CSS 및 HTML 요소의 스타일 변경

- 사용자와 상호작용

- 다른 페이지로 데이터를 보낼 때 유일하게 사용할 수 있는 <form> 태그 (input, button 등등)의 유효성 검증

- 마우스나 키보드의 이벤트 처리 ( 이벤트가 발생 했을 때, 해당 스크립트를 실행하도록 하는 역할)

 

2. 기본 문법 (작성법)

- 대소문자 구분함

- 문장의 끝은 ';'이 온다. (생략은 가능하나 비추천)

- 큰 따옴표, 작은 따옴표 혼용 가능 ( 쌍은 맞추어서 사용)

 

 

자바 스크립트 작성 위치

 

1. HTML 태그의 속성 위치

2. HTML 문서 내부의 <script> </script> 태그 사이에 위치 (<head> 내부에도 가능, <body> 내부에도 가능, <body></html> 사이에도 가능)

3. 하나의 독립된 외부파일로 작성을 하여 포함시킴 <script src = "파일.js"></script> 로 추가 (단축으로, <script src = "파일.js"/>로 써도 됨

 

자바 스크립트 출력 방법 (HTML에 출력함)

1. document.write("출력내용(html 명령어)");

- <body>에 출력

- 출력 내용은 html 태그를 작성하여 스타일 등 적용

2. alert() 함수 사용.

3. innerHTML

4. 개발자 도구 (크롬에서는 f12) 콘솔에 출력

-console.log();

 

변수의 유형

1. 숫자 (정수, 실수)

2. 문자열

3. 객체(요소도 객체이다.)

4. boolean(true/false)

5. 배열

 

변수명 작성 규칙

1. 알파벳 대소문자, 밑줄, $ , 숫자사용

2. 문자, 밑줄, $로 시작

3. 대소문자 구분

4. 한글(유니코드) 가능 비추!

 

호이스팅(Hoisting)

변수 사용 이후에 변수의 선언이 나와도 정상적으로 실행되는 현상.

선언 없이 먼저 변수를 사용(대입,연산,출력 등) 하고 나중에 선언을 해도 정상 처리 됨.

-- 가급적 쓰지 말자.(가독성이 떨어진다)

 

연산자

문자열 연산자 : + 두 문자열을 붙여줌

산술 연산자 : +, -, /, *, %, ++, --

비교 연산자 : >, <, >=, <=, == , !=, ===(equal), !== (not equal)

조건 연산자 : 조건식 ? 참 : 거짓;

 

제어문

조건문 : if ~ else, switch~case

반복문 : while, for, for of (자바의 for each문, for each라는 함수는 따로 있다)

 

 

함수와 연계되는 변수의 위치

전역 변수

페이지 전체 영역에서 사용할 수 있는 변수

지역 변수

함수 내부 (중괄호 안)에서 선언된 변수

선언 시 전역변수와 구분하기 위해 var 대신에 let을 사용

 

 

상수

값을 변경할 수 없는 변수

const 변수명 = 초기값; --

이후...

변수명 = 값; --> 에러

 

무명함수(함수의 이름이 없는 함수, 기능만 정의 되어있음)

변수에 함수를 대입 ( var a = function)

반드시 호출 전에 작성 되어야함 (호이스팅 배제)

같은 이름으로 작성 된 일반 함수보다 우선 순위가 높음.

우선순위가 높은 함수만 호출이 된다.

(오버로딩 개념이 없기 때문에 의미없음)

태그에서 발생하는 이벤트 처리를 위한 기능을 할 때 많이 쓰임

 

참고 - NaN : Not a number

변수에 함수를 대입.

일반 변수에 정의된 함수를 대입

 

arguments 객체

함수 내부에 자동으로 생성되는 인자 저장 배열 객체.

arguments.length로 인자의 갯수를 구하고,

arguments[idx]로 각 위치의 값을 구할 수 있음.

 

 

배열

 

DOM/BOM (document of model / browser of model)

자바 및 C와는 다르게, 여러 가지 타입의 데이터가 한 배열에 다 들어갈 수 있다.

변수의 묶음. 타입 구분이 없다 (자료형의 구분이 없다), 크기 지정을 안함

생성 방식

1. var 배열명 = [값1, 값2, .. ];

2. var 배열명 = []; - 크기 지정 안된 배열 선언

3. var 배열명 = new Array(값,값,...); - 대괄호 말고 소괄호가 들어감.

4. 변수에 함수를 넣을 수 있듯이, 배열에도 함수를 넣을 수 있다.

 

 

배열 TIP.

체크버튼으로 체크하면, 그 value값들을 배열로 넣어서 활용하는 데 좋다.

 

 

배열 함수(메소드)

join()

배열의 원소를 문자열로 변환하여 연결

sort()

배열의 원소를 오름차순으로 변환.

반환값은 원본의 주소. ( -- 원본이 변경됨)

reverse()

배열의 원소를 역순으로 변환. (내림차순으로 바꿀 때, 유용)

 

참고.

'='을 사용하여 배열을 복사할 수 있음

원본의 주소가 복사되기 때문에 사본을 변경할 경우, 원본도 같이 변경이 됨 (shallow copy)

slice()

원본이 변경 되지 않음

배열의 부분 추출

추출한 내용으로 새로운 배열 생성.

slice(원하는 데이터 시작위치, 원하는 데이터 끝 위치 + 1);

배열의 값 전체를 복사하여 새 배열을 작성 할 때도 활용 가능

- 이 때 slice()로 인자를 넣지 않음.

 

splice()

원본을 변경시킴

원본에서 범위에 속한 원소를 추출하여 새로운 배열을 생성하고 원본에서는 제거.

원본에 새로운 원소를 추가.

 

배열의 스택화

자료구조의 가장 기본

1) 스택용 함수

배열.push(원소, 원소, ...);

배열의 끝에 새 원소를 추가.

배열.pop();

배열의 끝에 있는 원소를 추출하고 제거함.

배열.unshift(원소,원소,...);

배열의 시작에 원소를 추가함.

배열.shift();

배열의 시작에 있는 원소를 추출하고 제거함

 

push,pop/unshift,shift 의 차이

push,pop는 배열의 맨 뒤에서!

unshift,shift는 배열의 맨 앞에서!

 

배열의 foreach

배열의 처음부터 마지막까지 순회.

처음위치의 값부터 꺼내와서 동일한 처리를 할 경우 활용할 수 있는 함수.

foreach의 인자로 처리를 위한 함수를 입력함.

 

'JAVASCRIPT > JAVASCRIPT' 카테고리의 다른 글

BOM(Browser Object Model)  (0) 2022.08.28
자바 스크립트 객체  (0) 2022.08.28

 

파일을 Byte단위로 읽어 올때 유용한 버퍼 스트림

직접 코드를 읽어 파일에 접속하는 것이 아닌,

 

8192바이트의 버퍼를 이용하여 읽어와서 훨씬 빠름.

 

BufferedInputStream br = new BufferedInputStream(isr);

 

https://hey79.tistory.com/55

이미지 썸네일 삭제
자바 BufferedInputStream [북붙따라하기]

BufferedInputStream  : byte단위로 파일을 읽어 올때 사용하는 버퍼 스트림 입니다. 사용 예제 ) 코드를 복붙 하여 실행해 보시기 바랍니다. 설명은 주석과 코드 아랫부분에 있습니다. import java.io.Buffere..

hey79.tistory.com

 

'JAVA' 카테고리의 다른 글

JAVA / JSON 연습  (0) 2022.09.18
AES 암호화 & BASE64 인코딩  (0) 2022.09.04
BigDecimal  (0) 2022.08.28
제너릭  (0) 2022.08.28
Wrapper 클래스  (0) 2022.08.28

 

소수점을 취급할 때 대부분의 프로그래밍 언어에서 지원해주는 Float, Double 를 보통 많이 사용하였다.

평범하게 사용한다면 소수점 아래의 수는 워낙 작아 큰 문제가 없었지만, 돈과 관련된 데이터를 취급하는 과정에서

0.001 정도의 오차로 인해 큰 문제가 생길 뻔 했다.

 

BigDecimal은 현재 자바 내에서 유리수를 표현하는 가장 정밀한 방법이다.

Float와 Double을 연산하게 된다면 부동소수점의 문제로 약간의 오차가 발생하는데

단 1원의 차이도 용납 안되는 금융 데이터에서는 반드시 BigDecimal 을 사용하여야 한다.

 

1. BigDecimal 초기화 및 상수

초기화는 생성자를 통한 초기화로 가능하다.

초기화할 경우 주의할 점은 파라미터로 Double Type 값을 넘겨 줄 경우 아래와 같이 문제가 발생한다.

5.01 로 초기화를 원했으나 5.00999999... 으로 나오게 된다.

Double 타입 값은 2진수로 변환되어 표현할 값과 가장 근사치로 계산되어 오차가 발생한다.

(BigDecimal은 10진수로 계산되어 가장 정확한 값을 나타낼 수 있다.)

이를 막기 위해서는 String Type 으로 파라미터를 전달하면 된다.

 

BigDecimal 에서 제공하는 기본 상수를 활용( ZERO, ONE, TEN )이 가능하다.

import java.math.BigDecimal;

public class BigDecimalTest {


	public static void main(String[] args) {
		
		BigDecimal bigInit1 = new BigDecimal(5);
		BigDecimal bigInit2 = new BigDecimal(5.01);
		BigDecimal bigInit3 = new BigDecimal("5.0");
		
		// 초기화
		System.out.println("Constructor Init : " + bigInit1);
		
		System.out.println("Double Type Construct : " + bigInit2);
		
		System.out.println("String Type Construct : " + bigInit3);
		
		// 상수
		bigInit1 = BigDecimal.ZERO;
		System.out.println("Zero Const : " + bigInit1);
		
		bigInit1 = BigDecimal.ONE;
		System.out.println("ONE Const: " + bigInit1);
		
		bigInit1 = BigDecimal.TEN;
		System.out.println("TEN Const: " + bigInit1);
	}
}
 
 

2. BigDecimal 사칙 연산

BigDecimal로 사칙연산은 메소드 호출 방식으로 이루어진다.

사용하는 메소드는 다음과 같다.

ADD , SUBTRACT, MULTIPLY, DIVIDE

import java.math.BigDecimal;

public class BigDecimalTest {
	public static void main(String[] args) {
		
		BigDecimal bigInit1 = new BigDecimal(5.0);
		BigDecimal bigInit2 = new BigDecimal(5.01);
		BigDecimal bigInit3 = new BigDecimal("5.001");
		
		// 덧셈
		System.out.println("ADD : " + bigInit1.add(bigInit3));
		// 뺄셈
		System.out.println("SUBTRACT : " + bigInit1.subtract(bigInit3));
		// 곱셈
		System.out.println("MULTIPLY : " + bigInit1.multiply(bigInit3));
		// 나눗셈 (5.001 / 5)
		System.out.println("DIVIDE : " + bigInit3.divide(bigInit1));
		// 나눗셈 (5 / 5.001)
		System.out.println("DIVIDE : " + bigInit1.divide(bigInit3));

	}
}
 

정수와 유리수의 나눗셈의 경우 연산자, 피연산자에 따라서 표현식 오류가 발생할 수 있다.

 

3. BigDecimal 비교 연산자

import java.math.BigDecimal;

public class BigDecimalTest {

	public static void main(String[] args) {
		
		BigDecimal bigInit1 = new BigDecimal(5.0);
		BigDecimal bigInit2 = new BigDecimal(5);
		BigDecimal bigInit3 = new BigDecimal("5.001");
		
		// Equals
		System.out.println("Equals : " + bigInit1.equals(bigInit2));

		// compareTo 1
		System.out.println("CompareTo : " + bigInit1.compareTo(bigInit2));
		
		// compareTo 2
		System.out.println("CompareTo : " + bigInit2.compareTo(bigInit3));
		
		// compareTo 3
		System.out.println("CompareTo : " + bigInit3.compareTo(bigInit2));
		
		// Max
		System.out.println("Max : " + bigInit1.max(bigInit3));
		
		// Min
		System.out.println("Min: " + bigInit1.min(bigInit3));
		
	}
}
 

동일 여부 확인은 BigDecimal 객체를 비교하므로 eqauls 로 비교한다.

CompareTo 의 경우 연산자와 피연산자 비교하여 같으면 0 작으면 -1 크면 1을 반환한다.

 

더 자세한 사항은 아래 블로그를 참고

https://jsonobject.tistory.com/466

이미지 썸네일 삭제
Java, BigDecimal 사용법 정리

BigDecimal? BigDecimal은 Java 언어에서 숫자를 정밀하게 저장하고 표현할 수 있는 유일한 방법이다. 소수점을 저장할 수 있는 가장 크기가 큰 타입인 double은 소수점의 정밀도에 있어 한계가 있어 값이 유실될..

jsonobject.tistory.com

 

'JAVA' 카테고리의 다른 글

AES 암호화 & BASE64 인코딩  (0) 2022.09.04
BufferedInputStream  (0) 2022.08.28
제너릭  (0) 2022.08.28
Wrapper 클래스  (0) 2022.08.28
StringBuffer  (0) 2022.08.28

+ Recent posts