1. String 내장 객체

 

[예제 코드]

let url = "http://www.naver.com";
document.write("<p>문자열 : " + url + "</p>");

let len = url.length;
document.write("<p>문자열의 길이 : " + len + "</p>");

let position = url.indexOf("/");
document.write("<p>'/' 가 처음 나타나는 위치 : " + position + "</p>");

let up = url.toUpperCase();
document.write("<p>모든 글자 대문자 : " + up + "</p>");

let down = url.toLowerCase();
document.write("<p>모든 글자 소문자 : " + down + "</p>");

 

[출력 결과]

 

 

 

2. HTML 안에서 JS 사용

2-1. Inline방식

태그에 직접 자바스크립트를 기술하는 방식.

장점은 태그에 연관된 스크립트가 분명하게 드러난다는 점이다.

하지만 정보(HTML)와 제어(Javascript)가 섞여있기 때문에 정보로서의 가치가 떨어진다.

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
	#selected{
		color: red;
	}
	.dark{
		background-color: black;
		color: white;
	}
	.dark #selected{
		color: yellow;
	}
	
</style>
</head>
<body>
	<ul>
		<li>HTML</li>
		<li>CSS</li>
		<li id="selected">JavaScript</li>
	</ul>
	<input type="button" 
		onclick="document.body.className='dark'"
		value = "dark">	
</body>
</html>

▶ onclick은 자바스크립트에서의 이벤트 요소

▶ document.body.className='dark'는 자바스크립트

 

[출력 결과 - 클릭 전]

 

[출력 결과 - 클릭 후]

 

 

 

2-2. <script> 태그 이용

<script> 태그를 만들어서 여기에 자바스크립트 코드를 삽입하는 방식. 장점은 html 코드와 js 코드를 분리할 수 있다.

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <!-- <scirpt> 태그 이용 -->
    <!-- document의 id가 hw인 곳에서 click 이벤트 발생 시 function() 실행 -->
    <input type="button" id="hw" value="Hello">

    <script>
        let hw = document.getElementById('hw');
        hw.addEventListener('click',function(){
            alert("Hello world");
        });
    </script>
    
    <!-- Inline 방식 -->
    <input type="button" onclick="alert('Hello world');" value="Hello">
</body>
</html>

 

 

 

 

2-3. JS 파일 분리

이클립스에서는 'Untitled Text File'로 만든다.

JS파일 안에는 순수한 자바스크립트만 들어간다.

HTML 파일에서는 <script> 태그 안 src에 JS파일 주소만 연결해준다.

 

 

 

 

2-4. 로드 순서에 따른 오류

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<script>
		let hw = document.getElementById('hw');
		hw.addEventListener('click',function(){
			alert("Hello world");
		});
	</script>
	
	<input type="button" id="hw" value="Hello">
</body>
</html>

 

위 코드와 같이 실행 시, Uncaught TypeError: Cannot read properties of null (reading 'addEventListener') 라고 에러가 출력된다.

위에서 아래 방향으로 진행되는 코드 특성 상, script 태그 안에서 'hw' id를 가져오려고 해도 맨 아래에 있어 아직 가져올 수 없기 때문에 에러가 난다.

이 경우 window.onload = function(){}으로 해결 가능하다.

 

 

 

2-5. window.onload = function(){}

웹 브라우저의 모든 구성요소에 대한 로그가 끝났을 때 브라우저에 의해서 호출되는 함수(이벤트)

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<script>
		window.onload = function(){
			let hw = document.getElementById('hw');
			hw.addEventListener('click',function(){
				alert("Hello world");
			});
		}
	</script>
	
	<input type="button" id="hw" value="Hello">
</body>
</html>

 

2-4의 코드를 그대로 가져와 window.onload = function(){} 안에 넣어주었다. 이렇게 되면 <input> 태그 요소가 브라우저에 로그된 후에 실행되므로 문제없이 작동한다.

JS 파일로 따로 빼어도 정상작동한다.

 

728x90

'이론 > 자바 풀스택 국비수업' 카테고리의 다른 글

220513~16 Javascript 10  (0) 2022.06.23
220513 Javascript 9  (0) 2022.06.23
220512 Javascript 7  (0) 2022.06.22
220511 Javascript 6  (0) 2022.06.22
220511 Javascript 문제  (0) 2022.06.21

+ Recent posts