Javascript란?

Feb 19, 2024
Javascript란?

1. Javascript

  • 웹 브라우저에서 동작하는 스크립트 언어
HTML, CSS와 함께 웹 프로그래밍을 할 수 있도록 고안
  • 클라이언트 측에서 실행되는 스크립트 언어로, 웹 페이지를 동적으로 만들고,
사용자와 상호 작용하는 기능을 구현
  • AJAX를 이용하여 서버와 비동기적으로 데이터를 주고받는 기능을 구현
스레드가 하나밖에 없으니까 중요함
부분만 리로드 가능 → 통신이 효율적
 
  • Java : JVM으로 돌림
  • Javascript : 브라우저로 돌림
html를 동적으로 관리함
html 파일이 필요함
내부적으로 html 코드를 열면서 안에 삽입된 javacript를 실행됨
html이 실행될 때 javacript가 실행 됨
 
  • script는 대본, actor(html)이 필요함
html이 없으면 script는 실행할 수 없음 → 기생 언어 : 혼자 독립적으로 실행할 수 없음
  • 브라우저에 내장되어있는 엔진을 크롬에선 v8엔진(jvm같은 것)
이 엔진을 떼서 만든 javacript runtime 환경 : node js
크로스플랫폼 오픈소스 자바스크립트런 타임 환경 → 브라우저 바깥에서 javacript 실행 가능
브라우저 없이 실행할 수 있으니 기생 언어가 아니게 됨
 
  • html에 변화를 주는 이벤트만 주는 역할 → 모든 것을 다 개발할 수 있게 됨
  • 언어는 하드웨어를 제어함
언어는 뭘 하면 좋다는 특성은 있지만 그 언어가 할 수 없는 것은 없음
  • 근데 못하는 이유는?
일반 개발자들은 자기가 배운 언어에서 라이브러리를 제어하지 않으면 콘솔에 못 찍기 때문임
→ 단지 안하는 이유는 라이브러리가 없어서 직접 다 짜야해서 불편하기 때문
 
우리가 배우는 이유 : html을 제어하기 위해 배우는 것
 
JS Async : 비동기
JS HTML DOM : html의 태그를 다루는 기술
sql : 질의어 → DB 조작어
 
단일 스레드를 사용 → 스레드로 통신을 하는 것은 아님
동시에 다운로드요청을 해서 할 수 있음
cpu가 명령만 하고 실제 일은 렘이 함 → 스레드 2개로 돌림
동시에 모든 것을 다 실행할 수 있음
스레드가 1개이면 밑으로 내려가지 못하고 기다려야해서 블락당함
왜? 응답을 받을때까지 기다려야해서 웨이트가 걸림
 
자바 스크립트로 post, get 등 통신으로 요청을 할때
통신하는 동안
하드디스크에서 가져와서 전송해야 하는 데 이건 하드디스크와 렘이 하는 일
렘에 있는 것을 상대방 서버로 전송해야 함
이거 오래걸려서 원래는 화면이 멈춰야하는데 스레드가 두개 돌아서 통신하면서 다른 일을 할 수 있음
 
자바스크립트는 단일 스레드인데 동시에 여러가지 일을 할 수 있음
왜?? 비동기적인 실행을 통해 여러 작업을 동시에 처리할 수 있는 것처럼 보임
notion image
notion image
<!DOCTYPE html> <html> <body> <h2>What Can JavaScript Do?</h2> <p id="demo">JavaScript can change HTML content.</p> <button type="button" onclick='document.getElementById("demo").innerHTML = "Hello JavaScript!"'>Click Me!</button> </body> </html>
id : 자바스크립트에서 찾기 위해 사용하는 식별자
p : 글자 넣는 태그
onclick : 버튼이 클릭되었을 때 실행될 JavaScript 코드를 지정
document(객체 = 브라우저)의 화면에서
getElementById : id를 get 찾는다
demo : 찾는 id
innerHTML : 그 안에 값을 = 이하로 바꾸겠다.
notion image
notion image
 
Share article

vosw1