본문 바로가기
IT

js 뜻의 대해서 알아보자 javascript

by MY0715 2024. 7. 31.
반응형

js는 웹 개발에서 필수적인 프로그래밍 언어로, 주로 웹페이지의 동적인 기능을 구현하는 데 사용됩니다. 이 글에서는 js의 기본 개념과 유요기능, 변수와 자료형, 함수 등을 알아보도록 하겠습니다. 

 

js란 무엇인가?

js는 웹페이지의 동적 기능을 구현하기 위해서 널리 사용되는 프로그래밍 언어입니다. HTML과 CSS가 웹페이지의 구조와 스타일을 담당하는 반면에 JS는 사용자의 인터랙션과 애니메이션을 구현하는데 아주 중요한 역할을 합니다.

 

JS의 역사

JS는 1995년 넷스케이프사에서 브렌던 아이크에 의해 처음 개발되었습니다. 당시 웹페이지는 정적인 콘텐츠만 제공할 수 있었는데요 JAVASCRIPT의 등장으로 인해서 웹페이지에 동적인 기능을 추가할 수 있게 되었습니다. 현재 JS는 ECMA(European Computer Manufacturers Association)에서 관리하는 표준화된 언어로 자리잡았습니다. 

 

js의 주요 기능

1. DOM 조작

JS를 사용하면 Document Object Model(DOM)을 조작하여 웹페이지의 콘텐츠를 동적으로 변경할 수 있습니다. 

<!DOCTYPE html>
<html>
<head>
    <title>DOM 조작 예제</title>
</head>
<body>
    <h1 id="title">Hello, World!</h1>
    <button onclick="changeText()">텍스트 변경</button>
    
    <script>
        function changeText() {
            document.getElementById("title").innerText = "Hello, JavaScript!";
        }
    </script>
</body>
</html>

 

위의 예제에서 버튼을 클릭하면 changeText함수가 실행되어 h1태그의 텍스트가 Hellow, JavaScript로 변경됩니다. document.getElementById메서드를 이용해서 DOM요소를 선택하고, innerText속성을 통해 텍스트를 변경할 수 있습니다. 

 

이 코드에서는 버튼을 클릭할 때마다 changeText함수가 호출됩니다. 이 함수는 document.getElementById("title")을 사용해서 id가 title인 요소를 선택하고, 그 요소의 innerText를 Hello.JavaScript!로 변경됩니다. 이와 같이 JavaScript를 통해 웹페이지 콘텐츠를 실시간으로 조작할 수 있습니다. 

 

2. 이벤트 핸들링

js는 다양한 이벤트를 처리할 수 있스빈다. 예를들어서 클릭, 킵보드 입력, 마우스 이동 등 다양한 사용자분들의 이벤트들을 반응해서 핸들링할 수 있습니다. 

<!DOCTYPE html>
<html>
<head>
    <title>이벤트 핸들링 예제</title>
</head>
<body>
    <input type="text" id="inputField" onkeyup="showInput()" placeholder="텍스트를 입력하세요">
    <p id="output"></p>
    
    <script>
        function showInput() {
            var input = document.getElementById("inputField").value;
            document.getElementById("output").innerText = input;
        }
    </script>
</body>
</html>

 

이 예제에서 사용자가 텍스트 필드에 입력할 때 마다 showInput함수가 호출되어 입력한 내용이 실시간으로 output요소에 표시됩니다. onkeyup이벤트는 키가눌렸다가 올라올 때 발생되고, document.getElementById와 innerText를 사용하여 입력된 값을 가져와 출력합니다. 

 

showInputㅎ마수는 사용자가 텍스트 필드에 입력할 때마다 실행됩니다. 

document.getElementById("inputField").value를 통해 텍스트 필드의 현재 값을 가져오고,

docuemnt.getElementById("output").innerText에 이 값을 설정하여 실시간으로 화면에 출력합니다.

 

3. Ajax를 이용하여 비동기 통신

ajax(Asynchronous Javascript and XML)는 JavaScript를 사용해서 서버와 비동기적으로 통신하는 방법입니다. 이를 통해서 페이지를 새로고침하지 않고도 데이터를 주고 받을 수 있습니다.

<!DOCTYPE html>
<html>
<head>
    <title>AJAX 예제</title>
</head>
<body>
    <button onclick="loadData()">데이터 로드</button>
    <div id="dataContainer"></div>
    
    <script>
        function loadData() {
            var xhr = new XMLHttpRequest();
            xhr.open("GET", "https://api.example.com/data", true);
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    document.getElementById("dataContainer").innerText = xhr.responseText;
                }
            };
            xhr.send();
        }
    </script>
</body>
</html>

 

이 코드는 버튼을 클릭하면 loadData함수가 호출되어 서버에서 데이터를 가져와서 dataContainer에 표시합니다. XMLHttpRequest객체를 사용해서 서버에 요청을 보내고 응답이 완료되면 responseText속성을 통해 데이터를가져옵니다. 

 

이 예제에서는 loadData함수가 서버와 비동기 통신을 수행합니다. XMLHttpRequest객체를 사용해 GET요청을 보내고 서버로부터 응답을 받을 때까지 기다립니다. 응답이 완료되면 xhr.respoonseText를 통해 서버에서 받은 데이터를 dataContainer에 표시합니다. 

 

Js의 변수와 자료형

변수 선언

js에서는 var, let, const를 사용해서 변수를 선언합니다.

var oldVariable = "이전 방식"; // ES5 이전에 사용
let modernVariable = "최신 방식"; // ES6 이후 추천
const constantVariable = "상수"; // 상수, 변경 불가

var는 ES5이전에 사용되던 변수 선언방식이며, 함수 스코프를 가집니다. let은 ES6에서 도입된 변수 선언 방식으로 블록 스코프를가집니다. coinst는 상수를 선언할 때 사용되며, 선언과 동시에 초기화해야하며 값이 변경되지 않습니다. 

 

자료형

JS는 다양한 자료형을 지원합니다. 주요 자료형은 다음과같습니다.

let str = "문자열"; // String
let num = 123; // Number
let bool = true; // Boolean
let obj = { name: "John", age: 30 }; // Object
let arr = [1, 2, 3]; // Array
let func = function() { console.log("함수"); }; // Function
let undef = undefined; // Undefined
let nul = null; // Null

String은 문자열을 나타내고, 큰따옴표 또는 작은 따옴표로 감쌉니다. Number는숫자를 나타내고, 정수와 실수를 모두 포함합니다. Boolean은 참true와 거짓false를 나타냅니다. Object는 키-값 쌍의 집합을 나타내고, 중괄호로 감쌉니다. Array는 순서가 있는 값의 집합을 나타내고, 대괄호로 감쌉니다. Function은 함수 선언을 나타내고 Undefined는 변수가 선언되었지만 값이 할당되지 않은 상태를 나타냅니다. Null은 값이 없음을 나타냅니다.

 

함수와 스코프

함수 선언

js에서는 다양한 방법으로 함수를 선언할 수 있습니다.

// 함수 선언식
function greet() {
    console.log("Hello, World!");
}

// 함수 표현식
let greet = function() {
    console.log("Hello, World!");
};

// 화살표 함수
let greet = () => {
    console.log("Hello, World!");
};

함수 선언식은 function키워드를사용하여 함수를 선언하며, 함수명을 가질 수 있습니다. 함수 표현식은 let이나 const를사용하여 함수를 변수에 할당합니다. 화살표 함수는 EX6에서 도입된 간결한 함수 선언방식으로 function키워드 대신에 =>를 사용합니다. 

 

스코프

js의 스코프는 변수가 접근할 수 있는 유효 범위를 의미합니다. 주로 함수 스코프와 블록 스코프가 있습니다. 

function scopeExample() {
    var functionScoped = "함수 스코프"; // 함수 내에서만 접근 가능
    if (true) {
        let blockScoped = "블록 스코프"; // 블록 내에서만 접근 가능
        console.log(blockScoped); // 블록 스코프 접근 가능
    }
    console.log(functionScoped); // 함수 스코프 접근 가능
    // console.log(blockScoped); // 블록 스코프 접근 불가
}
scopeExample();

 

이 예제에서 functionScoped 변수는 함수 스코프를 가지므로 함수 내에서만 접근할 수 있습니다. blockScoped 변수는 블록스코프를 가지므로 블록 내에서만 접근할 수 있으며, 블록 외부에서는 접근할 수 없습니다.

 

js의 객체 지향프로그래밍

객체 생성

js는 객체 지향프로그래밍을 지원합니다. 객체를생성하는 방법은 여러가지가 있습니다.

// 객체 리터럴
let person = {
    name: "John",
    age: 30,
    greet: function() {
        console.log("Hello, " + this.name);
    }
};

// 생성자 함수
function Person(name, age) {
    this.name = name;
    this.age = age;
}

Person.prototype.greet = function() {
    console.log("Hello, " + this.name);
};

let john = new Person("John", 30);
john.greet();

 

객ㄹ체 리터럴을 사용하면 중괄호 {} 안에 키-값을 나열하여 객체를생성할 수 있습니다. 생성자 함수를 사용하면 new 키워드를 사용해서 객체를 생성할 수 있고, 생성자 함수의 프로토타입에 메서드를 추가할 수 있습니다.

 

클래스

ES6부터는 클래스 문법이 도입되어 객체지향프로그래밍이 더욱 간편해졌습니다. 아래의 코드를 참고하세요.

class Person {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    greet() {
        console.log("Hello, " + this.name);
    }
}

let jane = new Person("Jane", 25);
jane.greet();

 

클래스 문법을 사용하면 class키워드를사용하여 클래스를 정의할 수 있으며, constructor 메서드를 사용하여 초기화를 수행할 수 있습니다. 클래스 내부에 메서드를 정의하여 객체의 동작을 지저할 수 있습니다. 

 

js라이브러리와 프레임워크

jQuery

jQuery는 js의 기능을더욱 간편하게 사용할 수 있도록 도와주는 라이브러리입니다. 

<!DOCTYPE html>
<html>
<head>
    <title>jQuery 예제</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <button id="btn">클릭하세요</button>
    <script>
        $(document).ready(function() {
            $("#btn").click(function() {
                alert("버튼 클릭됨");
            });
        });
    </script>
</body>
</html>

 

이 예제에서 jQuery를 사용하여 버튼 클릭 이벤트를 처리합니다. $(document).ready함수는 문서가 준비되었을 때 실행되며, $("#btn").click 함수는 버튼이 클릭되었을 때 실행됩니다.

 

React

React는 사용자 인터페이스를 구축하기 위한 JavaScript라이브러리입니다. React를 어떻게 사용되었는지 아래를 확인하세요.

import React from 'react';
import ReactDOM from 'react-dom';

class App extends React.Component {
    render() {
        return <h1>Hello, React!</h1>;
    }
}

ReactDOM.render(<App />, document.getElementById('root'));

위 예제는 React를 사용하여 간단하여 간단한 컴포넌트를정의하고 렌더링합니다. App클래스는 React.Component를상속받아 정의되며, render 메서드는 컴포넌의 ui를반환합니다. reactDOM.render함수는 App컴포넌트를 root요소에 렌더링합니다.

반응형